相关疑难解决方法(0)

为什么更改总和顺序会返回不同的结果?

为什么更改总和顺序会返回不同的结果?

23.53 + 5.88 + 17.64 = 47.05

23.53 + 17.64 + 5.88 = 47.050000000000004

双方的JavaJavaScript的返回相同的结果.

我理解,由于浮点数用二进制表示的方式,一些有理数(如1/3 - 0.333333 ......)无法精确表示.

为什么简单地改变元素的顺序会影响结果?

javascript java floating-point

294
推荐指数
6
解决办法
1万
查看次数

如何避免Java中的浮点数或双精度浮点精度错误?

我有一个非常恼人的问题,在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)

我明白浮动精度误差的积累,但是,如何摆脱这个?我尝试使用双打错误的一半,但结果仍然相同.

有任何想法吗?

java sum floating-accuracy

30
推荐指数
3
解决办法
5万
查看次数

双重计算产生奇数结果

我有2个数字存储为Double,1.4300和1.4350.当我减去1.4350 - 1.4300时,它给出了结果:0.0050000000000001155.为什么它会在最后添加1155,如何解决这个问题,使其返回0.005或0.0050?我不确定舍入是否有效,因为我使用的是2和4的十进制数.

java floating-point double

3
推荐指数
1
解决办法
1843
查看次数