Python中的最大浮点数是多少?


Answers:


273

对于float看看sys.float_info

>>> import sys
>>> sys.float_info
sys.floatinfo(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308, min=2.2
250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15, mant_dig=53, epsil
on=2.2204460492503131e-16, radix=2, rounds=1)

具体来说sys.float_info.max

>>> sys.float_info.max
1.7976931348623157e+308

如果那还不够大,那么总会有正无穷大

>>> infinity = float("inf")
>>> infinity
inf
>>> infinity / 10000
inf

long类型具有无限的精度,因此我认为您仅受可用内存的限制。


1
实际上,我发现sys.maxint对我的应用程序已经足够了
ladyfafa 2010年

sys.float_info从v2.6开始似乎可用。v2.3-5怎么样?
Aleksei Fedotov

1
注意sys.float_info.min被定义为“最小正归一化浮点数”。可能会出现较小的反常值,直到5e-324
Bob Stein

1
太酷了,两者都很有用。inf对于python的所有功能,以及float_info.max作为较早版本不起作用时的解决方法,例如time.sleep(float("inf")),不允许使用:(
Dima Tisnek

2
@ladyfafa:sys.maxint在Python 3中消失了,另请参见其他答案和stackoverflow.com/questions/13795758/…的
Joachim Wagner

16

sys.maxint不是python支持的最大整数。它是python的常规整数类型支持的最大整数。


10
+1这很重要。在Py3k中,这几乎没有意义-这是Python(透明地!)将基础数据类型更改为的地方long
卡特里尔

6
@katrielalex:sys.maxint甚至没有在Python 3中定义,它称为sys.maxsize,这在Python 2中也可能是首选。
Scott Griffiths

14
@斯科特·格里菲斯(Scott Griffiths):不完全是。 sys.maxsize(在Python 2.6中引入),这sys.maxint是两件不同的事情。第一个给出集合中允许的最大对象数(例如,列表,字典等的最大大小),并对应于C size_t类型的带符号版本;第二个是int类型切换到的点,它long是C的最大值long。在某些平台上,两个值是不同的:例如,在64位Windows上,sys.maxsizeis 2**63-1sys.maxintis 2**31-1
马克·迪金森

@Mark Dickinson:感谢您的更正-我从未意识到它们可能会有所不同(在Snow Leopard上使用64位Python两者都是2**63-1)。
Scott Griffiths


7

如果您使用numpy的,你可以使用D型float128 ”,并得到的最大浮动10E + 4931

>>> np.finfo(np.float128)
finfo(resolution=1e-18, min=-1.18973149536e+4932, max=1.18973149536e+4932, dtype=float128)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.