如何在Python中输入浮点无穷大字面量

79 投票
4 回答
59860 浏览
提问于 2025-04-15 23:14

我该如何在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 标准的平台上都能正常工作。

撰写回答