【问题标题】:10.3 % 2.5 prints 0.3 or 0.3000000000000007 [duplicate]10.3 % 2.5 打印 0.3 或 0.3000000000000007 [重复]
【发布时间】:2016-06-02 15:00:33
【问题描述】:

有人可以详细解释为什么在 Python 2.7 中

10.3 % 2.5 => 0.3

在 Python 3.0 中打印 0.3000000000000007(可能是由于表示问题)

此外,10.3 % 2.5 - 0.3 在两个 Python 中都输出 7.216449660063518e-16

我可以想象的错误是由于浮点表示,但是为什么打印行为会发生变化以及在将程序从 2 转换为 3 时可以做些什么来避免它?

【问题讨论】:

    标签: python python-2.7 printing floating-point python-3.5


    【解决方案1】:

    您的问题的解决方案是使用round,这样您就可以始终保证您的浮点数具有预先确定的准确性。所以你的方程会变成

    round(10.3 % 2.5, 1)
    

    在所有版本中都会返回0.3

    【讨论】:

      猜你喜欢
      • 2016-05-13
      • 1970-01-01
      • 2015-04-25
      • 1970-01-01
      • 2012-05-28
      • 2012-01-26
      • 2012-09-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多