Python 意外的减法小数

Python 意外的减法小数,python,floating-point,numeric,floating-accuracy,Python,Floating Point,Numeric,Floating Accuracy,我正在使用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

我正在使用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

阅读浮点数可能值得:


并不是每一个数字都能如此完美地表示出来,程序最好使用最接近的表示法。解释写入代码中的幻数时包括在内。

提示:
decimal
模块可以获得最接近的浮点数。