Modulo `decimal` di Python

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 tipo float produce valori con errori, mentre Decimal 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. Utilizzando Decimal, 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 modulo decimal, 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.

YouTube Video