Issue737648
Created on 2003-05-14 12:12 by bseiwald, last changed 2007-11-06 18:34 by mike.verdone.
| Messages | |||
|---|---|---|---|
| msg16005 (view) | Author: Bernhard Seiwald (bseiwald) | Date: 2003-05-14 12:12 | |
We found some strange behavior of the handling of "nan" if "nan" is used in if-statements. We use Python 2.2 (python2-2.2.2-11.7.3.src.rpm). In the following i show the results of the "experiments" with "nan", "inf" and usual floats: $ python Python 2.2.2 (#1, Jan 30 2003, 21:26:22) [GCC 2.96 20000731 (Red Hat Linux 7.3 2.96-112)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> a=float(1.2345) >>> b=float("inf") >>> c=float("nan") >>> if a==b: ... print "equal" ... >>> if a==c: ... print "equal" ... equal >>> if b==c: ... print "equal" ... equal Bernhard Seiwald seiwald@itp.tugraz.at |
|||
| msg16006 (view) | Author: Tim Peters (tim_one) | Date: 2003-05-15 01:48 | |
Logged In: YES
user_id=31435
Sorry, but all behavior in the presence of NaNs and infinities
and signed zeroes is a platform- and release- dependent
accident. Even that float("inf") didn't raise an exception for
you is an accident (e.g., in Python 2.2.2 on Windows, it
does raise an exception).
I've added this to PEP 42's "non-accidental 754 support"
feature request; you may also be interested in PEP 754
(support for 754 special values). Python has no 754 story
now. If you want it to have one, consider volunteering work
toward that end.
|
|||
| msg57173 (view) | Author: Mike Verdone (mike.verdone) | Date: 2007-11-06 18:34 | |
For the benefit of those who stumble here through Google, here's a
workaround I've discovered for NaN testing. This is BAD:
value == float('NaN')
But this seems to work ok:
str(value) == str(float('NaN'))
|
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2007-11-06 18:34:30 | mike.verdone | set | nosy:
+ mike.verdone messages: + msg57173 title: Error on handling nan -> Error on handling nan |
| 2003-05-14 12:12:01 | bseiwald | create | |