¿Cuál es el flotador máximo en Python?


Respuestas:


273

Para floatechar un vistazo a 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)

Específicamente sys.float_info.max:

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

Si eso no es lo suficientemente grande, siempre hay infinito positivo :

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

El longtipo tiene una precisión ilimitada , por lo que creo que solo está limitado por la memoria disponible.


1
en realidad, encontré que sys.maxint es suficiente para mi aplicación
ladyfafa

Parece que sys.float_infoestá disponible a partir de v2.6. ¿Qué tal v2.3-5?
Aleksei Fedotov

1
Nota sys.float_info.min se define como " flotante normalizado positivo mínimo ". Son posibles valores denormales más pequeños , hasta5e-324
Bob Stein

1
Genial, ambos son muy útiles. infpara todo lo relacionado con python, y float_info.maxcomo solución alternativa cuando lo anterior no funciona, por ejemplo, time.sleep(float("inf"))no está permitido :(
Dima Tisnek

2
@ladyfafa: sys.maxint desapareció en Python 3, vea también los comentarios en la otra respuesta y stackoverflow.com/questions/13795758/…
Joachim Wagner

16

sys.maxint no es el número entero más grande compatible con python. Es el número entero más grande soportado por el tipo entero regular de python.


10
+1 Esto es importante. En Py3k, casi no tiene sentido: es el punto en el que Python (¡transparente!) Cambia el tipo de datos subyacente a long.
Katriel

66
@katrielalex: sys.maxintni siquiera se define en Python 3, se llama sys.maxsize, lo que probablemente también sea preferible en Python 2.
Scott Griffiths

14
@Scott Griffiths: No del todo. sys.maxsize(introducido en Python 2.6) y sys.maxintson dos cosas diferentes. El primero da el número máximo de objetos permitidos en una colección (por ejemplo, el tamaño máximo de una lista, dict, etc.), y corresponde a una versión firmada del size_ttipo C ; el segundo es el punto después del cual el inttipo cambia a long, y es el valor máximo de una C long. En algunas plataformas, los dos valores son diferentes: por ejemplo, en Windows de 64 bits, sys.maxsizees 2**63-1y sys.maxintes 2**31-1.
Mark Dickinson

@ Mark Dickinson: Gracias por la corrección, no me había dado cuenta de que alguna vez podrían ser diferentes (con Python de 64 bits en Snow Leopard, ambos son 2**63-1).
Scott Griffiths


7

Si está usando numpy , puede usar dtype ' float128 ' y obtener un flotador máximo de 10e + 4931

>>> np.finfo(np.float128)
finfo(resolution=1e-18, min=-1.18973149536e+4932, max=1.18973149536e+4932, dtype=float128)
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.