A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://mail.python.org/pipermail/python-dev/2007-June/073571.html below:

[Python-Dev] NaN / Infinity in Python

[Python-Dev] NaN / Infinity in Python [Python-Dev] NaN / Infinity in PythonArmin Ronacher armin.ronacher at active-4.com
Thu Jun 7 15:18:43 CEST 2007
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

More information about the Python-Dev mailing list

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4