print(0.1 + 0.2 == 0.3)
返回
False
为什么?
答案 0 :(得分:4)
它没有被破坏,这是浮点运算的工作原理。
Is floating point math broken?
我建议您阅读此http://blog.reverberate.org/2014/09/what-every-computer-programmer-should.html
答案 1 :(得分:-1)
这是一个浮点精度问题。基本上浮点数不能全部用二进制表示(因此底层函数正在使用您打算使用的数字的不精确表示)。尝试使用decimal.Decimal。
from decimal import Decimal
print Decimal('0.1') + Decimal('0.2')