为什么更改总和顺序会返回不同的结果?
23.53 + 5.88 + 17.64 = 47.05
23.53 + 17.64 + 5.88 = 47.050000000000004
双方的Java和JavaScript的返回相同的结果.
我理解,由于浮点数用二进制表示的方式,一些有理数(如1/3 - 0.333333 ......)无法精确表示.
为什么简单地改变元素的顺序会影响结果?
我有一个非常恼人的问题,在Java中有很多浮点数或双打数.基本上这个想法是,如果我执行:
for ( float value = 0.0f; value < 1.0f; value += 0.1f )
System.out.println( value );
Run Code Online (Sandbox Code Playgroud)
我得到的是:
0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.70000005
0.8000001
0.9000001
Run Code Online (Sandbox Code Playgroud)
我明白浮动精度误差的积累,但是,如何摆脱这个?我尝试使用双打错误的一半,但结果仍然相同.
有任何想法吗?
我有2个数字存储为Double,1.4300和1.4350.当我减去1.4350 - 1.4300时,它给出了结果:0.0050000000000001155.为什么它会在最后添加1155,如何解决这个问题,使其返回0.005或0.0050?我不确定舍入是否有效,因为我使用的是2和4的十进制数.