[Python-Dev] Why is nan != nan?

Adam Olsen rhamph at gmail.com
Mon Mar 29 07:04:33 CEST 2010


On Sun, Mar 28, 2010 at 17:55, Greg Ewing <greg.ewing at canterbury.ac.nz> wrote:
> Steven D'Aprano wrote:
>
>> I disagree -- if I ask:
>>
>> 3.0 in [1.0, 2.0, float('nan'), 3.0]
>>
>> I should get True, not an exception.
>
> Yes, I don't think anyone would disagree that NaN should compare
> unequal to anything that isn't a NaN. Problems only arise when
> comparing two NaNs.

NaN includes real numbers.  Although a NaN is originally produced for
results that are not real numbers, further operations could produce a
real number; we'd never know as NaN has no precision.  Extending with
complex numbers instead gives enough precision to show how this can
happen.


-- 
Adam Olsen, aka Rhamphoryncus


More information about the Python-Dev mailing list