[Python-Dev] Mixing float and Decimal -- thread reboot
Mark Dickinson
dickinsm at gmail.com
Wed Mar 24 19:50:41 CET 2010
On Wed, Mar 24, 2010 at 6:26 PM, Alexander Belopolsky
<alexander.belopolsky at gmail.com> wrote:
> Mark, I wonder if you could describe an algorithm off the top of your
> head that relies on NaN == NaN being false.
>
No, I certainly couldn't! And I often wonder if the original IEEE 754
committee, given 20/20 foresight, would have made the same decisions
regarding comparisons of nans. It's certainly not one of my favourite
features of IEEE 754. (Though sqrt(-0.) -> -0. ranks lower for me.
Grr.)
A bogus application that I've often seen mentioned is that it allows
checking whether a float 'x' is a nan by doing `x == x'; but the
proper way to do this is to have an 'isnan' function or method, so
this isn't particularly convincing.
Slightly more convincing is history: this is the way that nan
comparisons behave in other languages (Fortran, C) used for numerics.
If Python were to do something different then a naively translated
algorithm from another language would fail. It's the behaviour that
numerically-aware people expect, and I'd expect to get complaints from
those people if it changed.
Mark
More information about the Python-Dev
mailing list