为什么此Java代码返回61.004999999999995而不是61,005?我不明白。

System.out.println(105*0.581);

最佳答案

它是由于浮点数的性质而发生的。计算机不是很智能地处理浮点数,因此我们必须基于近似值。
您应该执行以下操作,而不是6.005 == 6.004999:6.005-6.004999

07-27 23:59