【问题标题】:Floating point error in representation?表示中的浮点错误?
【发布时间】:2011-11-26 18:14:47
【问题描述】:

当我做这个乘法时

0.94 * 8700

输出是

8177.999999999999

但应该是这样的

8178

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

【问题讨论】:

标签: floating-point floating-accuracy double-precision


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多