表示中的浮点错误



当我做这个乘法

0.94 * 8700

输出为

8177.999999999999

但它应该是

8178年

我正在使用java,但我不认为这个错误与特定的编程语言有关现在我的问题是……为什么会这样?
和其他数字(只是作为一个例子)会导致相同的错误?

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

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

相关内容

  • 没有找到相关文章

最新更新