233

I think the maximum integer in python is available by calling sys.maxint.

What is the maximum float or long in Python?


See also: Maximum and Minimum values for ints.

Karl Knechtel
  • 62,466
  • 11
  • 102
  • 153
ladyfafa
  • 6,629
  • 7
  • 26
  • 22

4 Answers4

346

For float have a look at sys.float_info:

>>> import sys
>>> 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)

Specifically, sys.float_info.max:

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

If that's not big enough, there's always positive infinity:

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

int has unlimited precision, so it's only limited by available memory.

Boris Verkhovskiy
  • 14,854
  • 11
  • 100
  • 103
David Webb
  • 190,537
  • 57
  • 313
  • 299
  • 2
    actually, I found the sys.maxint is quite enough to my application – ladyfafa Aug 13 '10 at 13:49
  • It seems `sys.float_info` is available starting from v2.6. How about v2.3-5? – Aleksei Fedotov Jan 23 '15 at 13:40
  • 1
    Note sys.float_info.min is [defined](https://docs.python.org/2/library/sys.html#sys.float_info) as "minimum positive **normalized** float". Smaller [denormal values](http://en.wikipedia.org/wiki/Denormal_number) are possible, down to `5e-324` – Bob Stein May 11 '15 at 01:47
  • 1
    Cool, both are very useful. `inf` for all things python, and `float_info.max` as a workaround when the earlier doesn't work, for example `time.sleep(float("inf"))` is not allowed :( – Dima Tisnek Oct 20 '16 at 11:27
  • 2
    @ladyfafa: sys.maxint is gone in Python 3, see also comments in the other answer and http://stackoverflow.com/questions/13795758/what-is-sys-maxint-in-python-3 – Joachim Wagner Apr 15 '17 at 10:09
17

sys.maxsize (previously sys.maxint) is not the largest integer supported by python. It's the largest integer supported by python's regular integer type.

Asclepius
  • 57,944
  • 17
  • 167
  • 143
GWW
  • 43,129
  • 11
  • 115
  • 108
  • 11
    +1 This is important. In Py3k, it's nearly meaningless -- it's the point at which Python (transparently!) changes the underlying datatype to `long`. – Katriel Aug 13 '10 at 13:45
  • 7
    @katrielalex: `sys.maxint` isn't even defined in Python 3, it's called `sys.maxsize`, which is probably to be preferred in Python 2 as well. – Scott Griffiths Aug 13 '10 at 15:13
  • 19
    @Scott Griffiths: Not quite. `sys.maxsize` (introduced in Python 2.6) and `sys.maxint` are two different things. The first gives the maximum number of objects allowed in a collection (e.g., maximum size of a list, dict, etc.), and corresponds to a signed version of the C `size_t` type; the second is the point after which the `int` type switches to `long`, and is the max value of a C `long`. On some platforms the two values are different: e.g., on 64-bit Windows, `sys.maxsize` is `2**63-1` and `sys.maxint` is `2**31-1`. – Mark Dickinson Aug 14 '10 at 09:29
  • @Mark Dickinson: Thanks for the correction - I hadn't realised they could ever be different (with 64-bit Python on Snow Leopard they are both `2**63-1`). – Scott Griffiths Aug 14 '10 at 10:38
  • https://stackoverflow.com/questions/13795758/what-is-sys-maxint-in-python-3 – JDOaktown Jun 25 '19 at 20:51
10

If you are using numpy, you can use dtype 'float128' and get a max float of 10e+4931

>>> np.finfo(np.float128)
finfo(resolution=1e-18, min=-1.18973149536e+4932, max=1.18973149536e+4932, dtype=float128)
The Aelfinn
  • 13,649
  • 2
  • 54
  • 45
3

In python 3 there is no sys.maxint There is a sys.maxsize

>>> sys.maxsize
2147483647

That does not mean that the maximum int is limited to 2 billion! It means that the size of the object containing the integer has a maximum size of 2 billion bytes. I.e. a very very large number

For float have a look at 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)

And specifically sys.float_info.max

>>> sys.float_info.max
1.7976931348623157e+308
Holger Bille
  • 2,421
  • 1
  • 16
  • 20