【问题标题】:What is the maximum float in Python?Python中的最大浮点数是多少?
【发布时间】:2011-03-29 11:35:51
【问题描述】:

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

Python 中floatlong 的最大值是多少?

【问题讨论】:

  • Python 3 中没有sys.maxint

标签: python int long-integer max


【解决方案1】:

对于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 中消失了,另请参阅其他答案中的 cmets 和 stackoverflow.com/questions/13795758/…
【解决方案2】:

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)。
【解决方案3】:

如果您使用 numpy,则可以使用 dtype 'float128' 并获得 10e+4931

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-06
    • 1970-01-01
    • 2020-11-10
    • 1970-01-01
    • 2017-02-11
    • 1970-01-01
    • 2010-12-22
    • 2017-02-08
    相关资源
    最近更新 更多