我目前正在学习Java。我刚刚使用jre1.8.0_25在Win7中运行Eclipse中的以下行:
System.out.println(4.5 * 7.9);
控制台输出为:35.550000000000004
我只是想知道为什么输出是错误的。
答案 0 :(得分:1)
在寻找准确性时,双打不是最佳选择,因为它们的设计存在一些限制,实际上并不像它们看起来那么完美。
答案 1 :(得分:1)
这不仅是一个Java问题(功能?),它是所有使用浮点算术的语言的常见问题。它基于IEEE 754标准,如果您感兴趣的话。
答案 2 :(得分:1)
由于计算机以二进制方式进行操作而导致精度损失。你可以看到它的解释here。