可能的重复:
JavaScript 的数学有问题吗? https://stackoverflow.com/questions/588004/is-javascripts-math-broken
Java浮点运算 https://stackoverflow.com/questions/1661273/java-floating-point-arithmetic
我有当前的代码
for(double j = .01; j <= .17; j+=.01){
System.out.println(j);
}
输出是:
0.01
0.02
0.03
0.04
0.05
0.060000000000000005
0.07
0.08
0.09
0.09999999999999999
0.10999999999999999
0.11999999999999998
0.12999999999999998
0.13999999999999999
0.15
0.16
0.17
有人可以解释为什么会发生这种情况吗?你如何解决这个问题?除了编写舍入函数之外?
由于其存储方式,浮点数是 Java 中实际数字的近似值。如果您需要精确值,请使用大十进制 http://download.oracle.com/javase/1.5.0/docs/api/java/math/BigDecimal.html反而。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)