为什么float(' nan')在python中不等于它自己

时间:2017-07-10 22:11:33

标签: python

In [6]: a = float('nan')

In [7]: a == a
Out[7]: False

为什么?

1 个答案:

答案 0 :(得分:6)

有两个原因,一个是实际的,一个是历史的。历史原因是,这使得测试NaN变得微不足道。如果该值不等于它自己,那么它就是NaN。

实际原因是NaN用于表示未定义值的各种不同情况,并非所有未定义的值都相等。

Console.ReadKey / NaN应该等于1吗?想想会有多疯狂。认为NaN应该等于自己只是不那么疯狂了。