[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

Adam Olsen, aka Rhamphoryncus

More information about the Python-Dev mailing list