python中的相等检查

时间:2019-01-23 21:03:19

标签: python equality

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会以不同的方式发生。

1 个答案:

答案 0 :(得分:0)

您遇到浮点错误。 xyz的输出是:

>>> x
0.3333333333333286
>>> y
0.3333333333333333
>>> z
0.33333333333333326

您可以看到它们显然不相等。

有关浮点错误的信息,请参见here