简单乘法上的Java错误

时间:2015-01-30 00:22:46

标签: java floating-accuracy

我目前正在学习Java。我刚刚使用jre1.8.0_25在Win7中运行Eclipse中的以下行:

System.out.println(4.5 * 7.9);

控制台输出为:35.550000000000004

我只是想知道为什么输出是错误的。

3 个答案:

答案 0 :(得分:1)

在寻找准确性时,双打不是最佳选择,因为它们的设计存在一些限制,实际上并不像它们看起来那么完美。

请参阅http://introcs.cs.princeton.edu/java/91float/

答案 1 :(得分:1)

这不仅是一个Java问题(功能?),它是所有使用浮点算术的语言的常见问题。它基于IEEE 754标准,如果您感兴趣的话。

答案 2 :(得分:1)

由于计算机以二进制方式进行操作而导致精度损失。你可以看到它的解释here