public static void main(String[] args) {
double test = 1;
int tick = 0;
while(tick < 10){
System.out.println(test += 1.4);
tick++;
}
}
结果:
2.4
3.8
5.199999999999999
6.6
8.0
9.4
10.8
12.200000000000001
13.600000000000001
15.000000000000002
我不明白为什么它会得到这些奇怪的十进制数 比如5.19而不是5.2 为什么是这样?有没有办法像我的计算器一样让它看起来像5.2?提前致谢。貂
答案 0 :(得分:1)
这就是双重工作的方式。它并不完美。你看到的是四舍五入的错误,这是因为并非所有的数字都可以用二进制来准确表示。
如果你想要精确,你应该尝试BigDecimal。