【问题标题】:Java error on simple multiplication [duplicate]简单乘法的Java错误[重复]
【发布时间】:2015-01-30 00:22:45
【问题描述】:

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

System.out.println(4.5 * 7.9);

控制台输出为:35.550000000000004

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

【问题讨论】:

标签: java floating-accuracy


【解决方案1】:

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

http://introcs.cs.princeton.edu/java/91float/

【讨论】:

    【解决方案2】:

    这不仅是 Java 问题(功能?),而且是所有具有浮点运算的语言的常见问题。如果您有兴趣,它基于 IEEE 754 标准。

    【讨论】:

      【解决方案3】:

      这是因为计算机以二进制方式进行运算导致精度损失。你可以看到它的解释here

      【讨论】:

      • 这也是因为输入文字不精确。 7.9 无法用浮点数准确表示。
      猜你喜欢
      • 1970-01-01
      • 2017-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-05
      • 1970-01-01
      • 1970-01-01
      • 2016-05-22
      相关资源
      最近更新 更多