Python浮动平等怪异

Ben*_*ers 0 python floating-point equality

今晚看到Python的一些意外行为.为什么以下打印出"不相等"?!

num = 1.00
num -= .95
nickel = .05

if nickel != num:
    print 'not equal'
else:
    print 'equal' 
Run Code Online (Sandbox Code Playgroud)

voi*_*hos 6

每个计算机科学家应该了解浮点运算.

>>> num = 1.00
>>> num
1.0
>>> num -= 0.95
>>> num
0.050000000000000044
>>> nickel = .05
>>> nickel
0.05
Run Code Online (Sandbox Code Playgroud)