[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