【问题标题】:Unexpected decimal on a subtraction [duplicate]减法意外小数[重复]
【发布时间】:2015-09-29 07:13:03
【问题描述】:

我正在使用 Python 3.5。我有一个基本的操作,但我得到了错误的结果:

def main(argv):
    cms=None
    damin=4.815
    dbmax=4.858
    it=(dbmax-damin)*1000
    print('Damin {0}    Dbmax {1}    IT {2}'.format(damin, dbmax, dbmax-damin))

所以结果是:

Damin 4.815    Dbmax 4.858    IT 0.04299999999999926

但我希望这样:

Damin 4.815    Dbmax 4.858    IT 0.043

【问题讨论】:

标签: python floating-point numeric floating-accuracy


【解决方案1】:

阅读浮点数可能值得一读:https://docs.python.org/3/tutorial/floatingpoint.html

并非每个数字都可以如此完美地表示,并且程序最好尽可能使用最接近的表示。包括在解释写入代码的幻数时。

【讨论】:

  • 提示:decimal模块可以获得最接近的浮点数。
猜你喜欢
  • 1970-01-01
  • 2013-10-25
  • 2013-03-26
  • 2015-12-22
  • 2022-11-01
  • 1970-01-01
  • 2016-04-11
  • 2021-09-29
  • 2013-04-29
相关资源
最近更新 更多