Qual è il float massimo in Python?


172

Penso che il numero intero massimo in Python sia disponibile chiamando sys.maxint.

Qual è il massimo floato longin Python?


Non c'è sys.maxintin Python 3.
David McCorrie

Risposte:


273

Per floatdare un'occhiata 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)

In particolare sys.float_info.max:

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

Se questo non è abbastanza grande, c'è sempre l' infinito positivo :

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

Il longtipo ha una precisione illimitata , quindi penso che tu sia limitato solo dalla memoria disponibile.


1
in realtà, ho trovato sys.maxint abbastanza per la mia applicazione
ladyfafa,

Sembra sys.float_infosia disponibile a partire dalla v2.6. Che ne dici di v2.3-5?
Aleksei Fedotov,

1
Nota sys.float_info.min è definito come " float normalizzato minimo positivo ". Valori denormali più piccoli sono possibili, fino a5e-324
Bob Stein,

1
Bene, entrambi sono molto utili. infper tutte le cose Python, e float_info.maxcome soluzione alternativa quando il precedente non funziona, ad esempio time.sleep(float("inf"))non è permesso :(
Dima Tisnek,

2
@ladyfafa: sys.maxint è sparito in Python 3, vedi anche i commenti nell'altra risposta e stackoverflow.com/questions/13795758/…
Joachim Wagner,

16

sys.maxint non è il numero intero più grande supportato da python. È il numero intero più grande supportato dal tipo intero normale di Python.


10
+1 Questo è importante. In Py3k, è quasi insignificante - è il punto in cui Python (in modo trasparente!) Cambia il tipo di dati sottostante long.
Katriel,

6
@katrielalex: sys.maxintnon è nemmeno definito in Python 3, si chiama sys.maxsize, il che probabilmente dovrebbe essere preferito anche in Python 2.
Scott Griffiths,

14
@Scott Griffiths: Non proprio. sys.maxsize(introdotto in Python 2.6) e sys.maxintsono due cose diverse. Il primo fornisce il numero massimo di oggetti consentiti in una raccolta (ad esempio, dimensione massima di un elenco, dict, ecc.) E corrisponde a una versione firmata del size_ttipo C ; il secondo è il punto dopo che il inttipo passa long, e è il valore massimo di una C long. Su alcune piattaforme i due valori sono diversi: ad esempio, su Windows a 64 bit, sys.maxsizeè 2**63-1ed sys.maxintè 2**31-1.
Mark Dickinson,

@Mark Dickinson: grazie per la correzione - non mi ero reso conto che avrebbero mai potuto essere diversi (con Python a 64 bit su Snow Leopard sono entrambi 2**63-1).
Scott Griffiths,


7

Se stai usando numpy , puoi usare il tipo ' float128 ' e ottenere un float massimo di 10e + 4931

>>> np.finfo(np.float128)
finfo(resolution=1e-18, min=-1.18973149536e+4932, max=1.18973149536e+4932, dtype=float128)
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.