浮动破碎?

时间:2014-09-22 08:42:14

标签: python

print(0.1 + 0.2 == 0.3)

返回

False

为什么?

2 个答案:

答案 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')