lettura facile

Il modulo decimal di Python

Il modulo decimal di Python ti permette di ottenere dei numeri decimali reali con una precisione più elevata rispetto al formato float(). Inoltre, ti consente di lavorare con un range di valori molto più ampio.

Questo modulo fa parte della libreria standard di Python ed è particolarmente utile nelle applicazioni finanziarie e scientifiche, dove la precisione dei calcoli è fondamentale.

Ecco un esempio pratico.

Per prima cosa importa in memoria il modulo Decimal.

import decimal

Ora stampa il valore massimo dell'esponente che puoi usare per rappresentare un numero reale.

print(decimal.MAX_EMAX)

999999999999999999

Il range di valori è molto più ampio rispetto ai numeri float.

Inoltre, i calcoli sono molto più precisi.

Ad esempio, definisci due numeri in virgola mobile (float).

f1 = 0.1
f2 = 0.2

Poi somma i numeri f1+f2 e stampa il risultato

float_sum = f1 + f2
print(float_sum)

Spesso, il risultato non esattamente 0.3 a causa dell'errore di precisione nei numeri in virgola mobile

0.30000000000000004

Adesso ripeti la stessa operazione con i numeri del modulo decimal.

Definisci due numeri decimali nelle variabili "d1" e "d2".

d1 = decimal.Decimal('0.1')
d2 = decimal.Decimal('0.2')

Poi somma i numeri d1+d2 e stampa il risultato.

decimal_sum = d1 + d2
print(decimal_sum)

In questo caso il risultato è esattamente 0.3

0.3

L'uso di decimal ha evitato l'errore di precisione che si verifica comunemente con i numeri in virgola mobile.

Pertanto, il calcolo è molto più preciso grazie al modulo decimal.

Ci sono però pro e contro che devi considerare. Generalmente, le operazioni con float sono più veloci rispetto a quelle con decimali, perché sono supportati a livello hardware dalla maggior parte delle CPU. Tuttavia, come hai già visto, la precisione è inferiore.

In generale, i numeri float sono più veloci e adatti per la maggior parte delle applicazioni, i decimali offrono una precisione maggiore e sono ideali quando la precisione è di primaria importanza anche a scapito di un calcolo più lento.

 




Se qualcosa non ti è chiaro, scrivi la tua domanda nei commenti.




FacebookTwitterLinkedinLinkedin