How do I type a floating point infinity literal in python

后端 未结 3 1148
小蘑菇
小蘑菇 2020-12-08 13:05

How do I type a floating point infinity literal in python?

I have heard

 inf = float(\'inf\')

is non portable. Thus, I have had t

相关标签:
3条回答
  • 2020-12-08 13:10

    Perhaps you could do something like this

    try:
        inf = float('inf')
    except:  # check for a particular exception here?
        inf = 1e30000
    
    0 讨论(0)
  • 2020-12-08 13:15

    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.)

    0 讨论(0)
  • 2020-12-08 13:34

    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.

    0 讨论(0)
提交回复
热议问题