Modulo `decimal` di Python
Questo articolo spiega il modulo decimal
di Python.
Puoi imparare le basi dei calcoli con il modulo decimal
, gestire la precisione, l'arrotondamento e altro, insieme a esempi di codice.
YouTube Video
Modulo decimal
di Python
Il modulo decimal
di Python fornisce un'aritmetica decimale a precisione fissa per evitare gli errori che si verificano nelle operazioni in virgola mobile. Utilizzando questo modulo, si possono ottenere risultati più affidabili nei calcoli finanziari o nei calcoli che richiedono alta precisione. In situazioni in cui gli errori del tipo float
rappresentano un problema, il modulo decimal
è efficace.
Uso di base del modulo decimal
Quando si utilizza il modulo decimal
, importa la classe Decimal
e gestisci i valori come istanze di questa classe. Successivamente, dimostreremo l'uso di base.
1from decimal import Decimal
2
3# Basic usage example of Decimal
4a = Decimal('0.1')
5b = Decimal('0.2')
6result = a + b
7
8print(f"Result: {result}") # Result: 0.3
- Questo codice somma accuratamente 0.1 e 0.2 utilizzando la classe
Decimal
. Eseguire lo stesso calcolo con il tipofloat
produce valori con errori, mentreDecimal
evita questi errori.
Controllare la Precisione
Il modulo decimal
ti permette di controllare facilmente la precisione (numero di cifre decimali) nei calcoli. La funzione getcontext()
può essere utilizzata per recuperare il contesto corrente e modificarne le impostazioni.
1from decimal import Decimal, getcontext
2
3# Set the precision
4getcontext().prec = 4 # Set to 4 decimal places
5
6a = Decimal('1') / Decimal('3')
7print(f"Result with precision 4: {a}") # Result with precision 4: 0.3333
- In questo esempio, la precisione è impostata a 4 cifre per il calcolo di
1 ÷ 3
. UtilizzandoDecimal
, puoi impostare la precisione dei calcoli secondo necessità, permettendoti di regolarti di conseguenza.
Arrotondamento
Il modulo decimal
include diverse opzioni per specificare i metodi di arrotondamento. Di seguito sono riportati esempi di utilizzo di varie opzioni di arrotondamento, come ROUND_UP
e ROUND_DOWN
.
1from decimal import Decimal, ROUND_UP, ROUND_DOWN
2
3# Example of rounding a number
4a = Decimal('1.2345')
5
6# Rounding up
7rounded_up = a.quantize(Decimal('0.01'), rounding=ROUND_UP)
8print(f"Rounded Up: {rounded_up}") # Rounded Up: 1.24
9
10# Rounding down
11rounded_down = a.quantize(Decimal('0.01'), rounding=ROUND_DOWN)
12print(f"Rounded Down: {rounded_down}") # Rounded Down: 1.23
- In questo caso, viene utilizzato
quantize()
per arrotondare in eccesso e in difetto i numeri a una precisione di 2 cifre decimali. Questo consente l'arrotondamento e diversi altri tipi di metodi di arrotondamento.
Contesto Operativo ed Eccezioni
Il modulo decimal
può anche gestire errori ed eccezioni che si verificano durante le operazioni. È possibile definire una gestione personalizzata per errori specifici, come la divisione per zero o il sovraccarico.
1from decimal import Decimal, getcontext, DivisionByZero
2
3# Exception handling
4getcontext().traps[DivisionByZero] = True
5
6try:
7 result = Decimal('1') / Decimal('0')
8except DivisionByZero:
9 print("Division by zero error caught!")
- In questo esempio, l'eccezione
DivisionByZero
viene gestita quando si verifica una divisione per zero. Nel modulodecimal
, gli errori possono essere controllati e personalizzati in questo modo.
Riepilogo
Il modulo decimal
è estremamente utile nei calcoli finanziari o in situazioni in cui è richiesta un'elevata precisione per evitare errori nei numeri in virgola mobile. Supporta un'ampia gamma di applicazioni, dai calcoli di base alla gestione della precisione, agli arrotondamenti e alla gestione delle eccezioni. Rivedi i seguenti punti riassunti e utilizza il modulo decimal
in base alle tue esigenze specifiche.
- È possibile effettuare calcoli decimali accurati con la classe
Decimal
. - Puoi regolare liberamente le impostazioni di precisione e arrotondamento.
- È possibile gestire eccezioni come la divisione per zero.
Questo ti consente di utilizzare il modulo decimal
per ridurre al minimo gli errori in situazioni che richiedono calcoli numerici accurati.
Puoi seguire l'articolo sopra utilizzando Visual Studio Code sul nostro canale YouTube. Controlla anche il nostro canale YouTube.