Il mio programma calcola la costante matematica e, che è irrazionale. Per fare ciò, avevo bisogno di ottenere fattoriali di numeri molto grandi.Qual è il numero più grande che la classe decimale può gestire?
int
non può gestire numeri maggiori di 170 !. (Ho scoperto che il più grande calcolatore di Google in grado di gestire è 170,654259, ma non sono sicuro di come un numero intero non può essere fattorizzato.) float
non può gestire anche numeri molto grandi.
Ho calcolato e a 750000 cifre e math.factorial(750000)
è un numero grande, incredibile. Eppure, Decimal
gestito con apparente facilità.
Quanto può essere grande un numero la maniglia Decimal
prima che venga sollevato uno OverflowError
? La dimensione è diversa in Python 2 rispetto a Python 3?
'Decimale' non fornisce risposte esatte. –
I numeri interi hanno una precisione infinita in Python, ad es. 'Matematica.fattoriale (170) 'è' 7257415615307998967396728211129263114716991681296451376543577798900561843401706157852350749242617459511490991237838520776666022565442753025328900773207510902400430280058295603966612599658257104398558294257568966313439612262571094946806711205568880457193340212661452800000000000000000000000000000000000000000'. Vedi [come potresti usare 'decimal.Decimal' per calcolare una risposta con precisione arbitraria (ma fissa)] (http://stackoverflow.com/a/347749/4279) – jfs
FWIW, non è così difficile calcolare un gran numero di cifre decimali di e utilizzando l'aritmetica intera. Vedi [here] (http://forums.xkcd.com/viewtopic.php?t=14661&p=3066871#p3066964) per esempio codice in Python e C. –