代码之家  ›  专栏  ›  技术社区  ›  user98235

python中的相等检查[重复]

  •  0
  • user98235  · 技术社区  · 7 年前
    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)
    

    为所有人生成假值。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Shane Fontaine    7 年前

    您遇到了浮点错误。的输出 x , y ,和 z 是:

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

    见 here 有关浮点错误的信息。