gpt4 book ai didi

java - 如何避免基元的计算错误

转载 作者:行者123 更新时间:2023-12-01 09:43:54 27 4
gpt4 key购买 nike

以下例程预计返回 1,但实际上返回 0.9999999999999999

double sum = 0;
for(int i=0; i<10; i++){
sum+=0.1;
}
System.out.println(sum);

其他 Java 数学运算也会出现同样的错误。

有什么办法可以避免这个问题吗?

提前谢谢您。

最佳答案

这就是所谓的浮点错误。这是很自然的,也是可以预料的。避免这种情况的方法是使用精度更高的变量,例如BigDecimal。然而,BigDecimal 执行计算的速度较慢,因此请考虑准确性在您的解决方案中的重要性。

我建议使用BigDecimal,尽管如果这些数量代表货币,性能会受到影响。在这种情况下,正确的计算比快速的​​计算更重要。

关于java - 如何避免基元的计算错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38226686/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com