【问题标题】:equality check in python [duplicate]python中的相等检查[重复]
【发布时间】:2019-01-23 21:03:18
【问题描述】:
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 会以不同的方式发生这种情况。

【问题讨论】:

标签: python equality


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-13
    • 2018-01-07
    • 2016-07-08
    • 1970-01-01
    • 2013-11-23
    • 2017-01-23
    • 1970-01-01
    相关资源
    最近更新 更多