x=(100+1.0/3)-100
y=1.0/3
z=1+1.0/3-1
x,y,z在数学上显然具有相同的值,但
print(x==y)
print(x==z)
print(y==z)
为所有生成False值。
有什么办法可以使它们在python中彼此相等?我不太确定为什么不将它们视为相同。我知道四舍五入是造成这种情况的原因,但是我不确定为什么x,y,z会以不同的方式发生。
答案 0 :(得分:0)
您遇到浮点错误。 x
,y
和z
的输出是:
>>> x
0.3333333333333286
>>> y
0.3333333333333333
>>> z
0.33333333333333326
您可以看到它们显然不相等。
有关浮点错误的信息,请参见here。