ChatGPT解决这个技术问题 Extra ChatGPT

What is the maximum float in Python?

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

What is the maximum float or long in Python?

There is no sys.maxint in Python 3.

D
Dave Webb

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

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

The long type has unlimited precision, so I think you're only limited by available memory.


actually, I found the sys.maxint is quite enough to my application
It seems sys.float_info is available starting from v2.6. How about v2.3-5?
Note sys.float_info.min is defined as "minimum positive normalized float". Smaller denormal values are possible, down to 5e-324
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 :(
@ladyfafa: sys.maxint is gone in Python 3, see also comments in the other answer and stackoverflow.com/questions/13795758/…
G
GWW

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


+1 This is important. In Py3k, it's nearly meaningless -- it's the point at which Python (transparently!) changes the underlying datatype to long.
@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: 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: 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).
T
The Aelfinn

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)

H
Holger Bille

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