如何在Python中输入浮点无穷大字面量
我该如何在Python中输入一个浮点数的无穷大?
我听说过
inf = float('inf')
这个写法在不同的环境中可能不太适用。所以,有人推荐我使用以下的写法:
inf = 1e400
这两种写法中,有哪一种是标准的,或者说更通用吗?哪种是最佳实践呢?
4 个回答
12
也许你可以试试这样做
try:
inf = float('inf')
except: # check for a particular exception here?
inf = 1e30000
16
float('inf')
在不同的平台上可能不太好用,尤其是在 Python 2.5 版本时,因为它输出的字符串在不同平台上可能会有差异。从 Python 2.6 版本开始,float('inf')
在符合 IEEE-754 标准的平台上是可以保证正常工作的(参考链接:http://www.python.org/dev/peps/pep-0754/)。
(而且推荐的范围似乎是 1e30000,而不仅仅是 1e400。)
63
在 python 2.6 中,只要CPU支持,这个功能就是可移植的。
现在,float() 函数可以把字符串 nan 转换成 IEEE 754 的“不是一个数字”值,同时把 +inf 和 -inf 转换成正无穷和负无穷。这在任何支持 IEEE 754 标准的平台上都能正常工作。