[Python-Dev] NaN / Infinity in Python (original) (raw)
Armin Ronacher armin.ronacher at active-4.com
Thu Jun 7 15🔞43 CEST 2007
- Previous message: [Python-Dev] Windows buildbot (Was: buildbot failure in x86 W2k trunk)
- Next message: [Python-Dev] NaN / Infinity in Python
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hi,
It's one of those "non issues" but there are still some situations where you have to deal with Infinity and NaN, even in Python. Basically one the problems is that the repr of floating point numbers is platform depending and sometimes yields "nan" which is not evaluable. It's true that eval() is probably a bad thing but there are some libraries that use repr/%r for code generation and it could happen that they produce erroneous code because of that. Also there is no way to get the Infinity and NaN values and also no way to test if they exist.
Maybe changing the repr of nan
to math.NaN
and inf
to math.Infinity
as
well as -inf
to (-math.Infinity)
and add that code to the math module (of
course as a C implementation, there are even macros for testing for NaN values)::
Infinity = 1e10000
NaN = Infinity / Infinity
def is_nan(x):
return type(x) is float and x != x
def is_finite(x):
return x != Infinity
Bugs related to this issue:
- http://bugs.python.org/1732212 [repr of 'nan' floats not parseable]
- http://bugs.python.org/1481296 [long(float('nan'))!=0L]
Regards, Armin
- Previous message: [Python-Dev] Windows buildbot (Was: buildbot failure in x86 W2k trunk)
- Next message: [Python-Dev] NaN / Infinity in Python
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]