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

Georg Brandl g.brandl at gmx.net
Fri Mar 26 00:21:59 CET 2010


Am 25.03.2010 22:45, schrieb Greg Ewing:
> Georg Brandl wrote:
>> Thinking of each value created by float('nan') as
>> a different nan makes sense to my naive mind, and it also explains
>> nicely the behavior present right now.
> 
> Not entirely:
> 
>    x = float('NaN')
>    y = x
>    if x == y:
>      ...
> 
> There it's hard to argue that the NaNs being compared
> result from different operations.
>
> It does suggest a potential compromise, though: a single
> NaN object compares equal to itself, but different NaN
> objects are never equal (more or less what dict membership
> testing does now, but extended to all == comparisons).
> 
> Whether that's a *sane* compromise I'm not sure.

FWIW, I like it.

Georg



More information about the Python-Dev mailing list