11

我最近使用以下代码测试了我听到的一些东西

public static void main(String[] args) { double x = 4.35 * 100; System.out.println(x); }.

我对为什么这会产生 434.99999999999994 而不是 435.0 感兴趣。谢谢

4

1 回答 1

17

当您键入:

double x = 4.35;

x不是按原样存储的。它以接近的形式存储(在这种情况下可能是 4.349999999)。

如果您想要准确的结果,请使用BigDecimal.

您可以了解浮点技术的准确性问题。

于 2013-07-10T13:31:21.823 回答