Skip to content Skip to sidebar Skip to footer

How Do I Type A Floating Point Infinity Literal In Python

How do I type a floating point infinity literal in python? I have heard inf = float('inf') is non portable. Thus, I have had the following recommended: inf = 1e400 Is either

Solution 1:

In python 2.6 it is portable if the CPU supports it

The float() function will now turn the string nan into an IEEE 754 Not A Number value, and +inf and -inf into positive or negative infinity. This works on any platform with IEEE 754 semantics.

Solution 2:

float('inf') is non portable as in not portable back to Python 2.5 when the string output varies between platforms. From 2.6 and onwards float('inf') is guaranteed to work on IEEE-754-compliance platforms (ref: http://www.python.org/dev/peps/pep-0754/).

(And the recommendation seems to be in the range 1e30000, not just 1e400.)

Solution 3:

Perhaps you could do something like this

try:
    inf = float('inf')
except:  # check for a particular exception here?
    inf = 1e30000

Post a Comment for "How Do I Type A Floating Point Infinity Literal In Python"