ChatGPT解决这个技术问题 Extra ChatGPT

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

我认为python中的最大整数可以通过调用sys.maxint来获得。

Python 中的最大 floatlong 是多少?

Python 3 中没有 sys.maxint

D
Dave Webb

对于 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

如果这还不够大,总会有 positive infinity

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

long type has unlimited precision,所以我认为你只受到可用内存的限制。


实际上,我发现 sys.maxint 对我的应用程序来说已经足够了
似乎 sys.float_info 从 v2.6 开始可用。 v2.3-5怎么样?
注意 sys.float_info.min defined 为“最小正标准化浮点数”。更小的 denormal values 是可能的,低至 5e-324
酷,两者都非常有用。 inf 适用于所有 python,而 float_info.max 作为早期版本不起作用时的解决方法,例如不允许使用 time.sleep(float("inf")) :(
@ladyfafa: sys.maxint 在 Python 3 中消失了,另请参阅其他答案和 stackoverflow.com/questions/13795758/… 中的评论
G
GWW

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


+1 这很重要。在 Py3k 中,它几乎没有意义——它是 Python(显然!)将底层数据类型更改为 long 的地方。
@katrielalex:sys.maxint 甚至没有在 Python 3 中定义,它被称为 sys.maxsize,这可能也是 Python 2 中的首选。
@Scott Griffiths:不完全是。 sys.maxsize(在 Python 2.6 中引入)和 sys.maxint 是两个不同的东西。第一个给出集合中允许的最大对象数(例如,列表、字典等的最大大小),并对应于 C size_t 类型的有符号版本;第二个是 int 类型切换到 long 之后的点,并且是 C long 的最大值。在某些平台上,这两个值是不同的:例如,在 64 位 Windows 上,sys.maxsize2**63-1sys.maxint2**31-1
@Mark Dickinson:感谢您的更正-我没有意识到它们可能会有所不同(在 Snow Leopard 上使用 64 位 Python,它们都是 2**63-1)。
T
The Aelfinn

如果您使用的是 numpy,则可以使用 dtype 'float128' 并获得 10e+4931 的最大浮点数

>>> np.finfo(np.float128)
finfo(resolution=1e-18, min=-1.18973149536e+4932, max=1.18973149536e+4932, dtype=float128)

H
Holger Bille

在 python 3 中没有 sys.maxintsys.maxsize

>>> sys.maxsize
2147483647

这并不意味着最大 int 被限制为 20 亿!这意味着包含整数的对象的大小最大为 20 亿字节。即一个非常非常大的数字

对于 float,请查看 sys.float_info

>>> sys.float_info
sys.float_info(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308, min=2.2250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15, mant_dig=53, epsilon=2.220446049250313e-16, radix=2, rounds=1)

特别是sys.float_info.max

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