79

如何在 python 中输入浮点无穷大文字?

我听说

 inf = float('inf')

是非便携式的。因此,我有以下建议:

 inf = 1e400

这些是标准的还是便携式的?什么是最佳实践?

4

3 回答 3

62

python 2.6中,如果 CPU 支持它是可移植的

float() 函数现在会将字符串 nan 转换为 IEEE 754 Not A Number 值,并将 +inf 和 -inf 转换为正无穷大或负无穷大。这适用于任何具有 IEEE 754 语义的平台。

于 2010-05-27T09:11:28.670 回答
16

float('inf')当字符串输出在平台之间变化时,它是不可移植的,因为不可移植回 Python 2.5。从 2.6 开始float('inf'),保证可以在 IEEE-754-compliance 平台上工作(参考: http: //www.python.org/dev/peps/pep-0754/)。

(而且建议似乎在 1e30000 范围内,而不仅仅是 1e400。)

于 2010-05-27T09:13:13.907 回答
12

也许你可以做这样的事情

try:
    inf = float('inf')
except:  # check for a particular exception here?
    inf = 1e30000
于 2010-05-27T09:23:36.647 回答