0

当我做这个乘法

0.94 * 8700

输出是

8177.999999999999

但它应该是

8178

我正在使用 java ,但我认为这个错误与特定的编程语言无关,现在我的问题是......为什么会发生这种情况?
还有哪些其他数字(仅作为示例)会导致相同的错误?

4

2 回答 2

5

您的具体原因是实数 0.94 不能用双精度浮点数精确表示。当您键入0.94时,实际存储的数字是0.939999999999999946709294817992486059665679931640625

于 2011-09-28T10:29:37.047 回答
0

这不是错误。IEEE 浮点数不能准确表示十进制数。

于 2011-09-28T10:26:40.857 回答