【发布时间】:2011-03-14 07:13:05
【问题描述】:
有没有办法检查长整数是否太大而无法在python中转换为浮点数?
【问题讨论】:
标签: python floating-point integer
有没有办法检查长整数是否太大而无法在python中转换为浮点数?
【问题讨论】:
标签: python floating-point integer
>>> import sys
>>> sys.float_info.max
1.7976931348623157e+308
实际上,如果您尝试将太大的整数转换为浮点数,则会引发异常。
>>> float(2 * 10**308)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OverflowError: Python int too large to convert to C double
【讨论】:
int(sys.float_info.max) 是 2**1024 - 2**971,但可以转换直到并包括 2**1024 - 2**970 - 1 的整数,而无需提高 OverflowError。