[Python-ideas] Why is nan != nan?
alexander.belopolsky at gmail.com
Thu Mar 25 19:06:47 CET 2010
> On Wed, Mar 24, 2010 at 7:31 PM, Mark Dickinson <dickinsm at gmail.com> wrote:
>> What if the two nans have different payloads or signs?
> They are still equal. Just as 0.0 and -0.0 are now.
Interestingly, Java departs from IEEE 754 on that last point as well:
Note that in most cases, for two instances of class Double, d1 and d2,
the value of d1.equals(d2) is true if and only if
d1.doubleValue() == d2.doubleValue()
also has the value true. However, there are two exceptions:
If d1 and d2 both represent Double.NaN, then the equals method returns
true, even though Double.NaN==Double.NaN has the value false.
If d1 represents +0.0 while d2 represents -0.0, or vice versa, the
equal test has the value false, even though +0.0==-0.0 has the value
true. This allows hashtables to operate properly.
More information about the Python-ideas