Vai al contenuto principale

Arrotondare a 2 cifre decimali in Python: 7 metodi spiegati

Impara ad arrotondare un numero a due cifre decimali in Python usando round(), f-string, format(), il modulo decimal, NumPy e altro — con una tabella di confronto dei metodi.
Aggiornato 2 giu 2026  · 7 min leggi

Arrotondare i numeri a due cifre decimali è una tecnica importante in Python. È particolarmente utile nei calcoli finanziari, nella presentazione dei dati e nei report scientifici.

Python offre diversi metodi per un arrotondamento preciso. In questo tutorial, ti mostrerò come arrotondare un numero a due cifre decimali in Python usando funzioni integrate, librerie e metodi di formattazione.

Se stai iniziando come data analyst, ti consiglio il corso di DataCamp Introduction to Python per imparare le basi di Python per la manipolazione e la trasformazione dei dati. Ti sarà utile anche il nostro tutorial su Python NumPy se devi arrotondare grandi array di numeri nei flussi di lavoro di data analysis.

TL;DR

  • Usa round(number, 2) per l'arrotondamento aritmetico — modifica il valore effettivo.

  • Usa f"{number:.2f}" o str.format() solo per la visualizzazione — il float originale non cambia.

  • Usa il modulo decimal quando è richiesta precisione decimale esatta (ad es. calcoli finanziari).

  • Usa np.round(array, 2) per arrotondare un intero array NumPy in una sola chiamata.

  • Attenzione alle sorprese di precisione dei float: round(2.675, 2) restituisce 2.67, non 2.68, a causa di come i float sono memorizzati in memoria.

Capire arrotondamento e cifre decimali

Le cifre decimali sono i numeri che compaiono subito dopo la virgola decimale. Le cifre decimali sono importanti perché determinano la precisione di un numero. Più cifre decimali ci sono, maggiore è la precisione, e viceversa.

Arrotondare i numeri significa modificare un numero riducendo il numero di cifre decimali. Questa tecnica è in genere applicata per semplificare un numero mantenendo coerenza tra i calcoli. Tuttavia, arrotondare un numero a un numero specifico di decimali influisce sull'accuratezza dei valori calcolati a causa dell'introduzione di piccoli errori durante l'arrotondamento.

Python fornisce diversi metodi per arrotondare i numeri a due cifre decimali. I seguenti esempi offrono spiegazioni dettagliate di queste tecniche.

Usare round() per arrotondare un numero in Python

La funzione round() è la funzione integrata di Python per arrotondare numeri in virgola mobile al numero di cifre decimali specificato. Puoi specificare il numero di decimali da ottenere fornendo un valore come secondo argomento. L'esempio seguente stampa 34,15.

# Example number to be rounded
number = 34.14559

# Rounding the number to 2 decimal places
rounded_number = round(number, 2)

print(rounded_number)

# 34.15

La funzione round() di Python usa "round half to even" come modalità di arrotondamento predefinita quando ometti il secondo argomento. Nell'arrotondamento per eccesso/difetto al pari (bankers’ rounding), quando un numero è esattamente a metà tra due interi, viene arrotondato all'intero pari più vicino. Questa tecnica è utile perché può aiutare a ridurre gli errori di arrotondamento cumulativi.

Insidia della precisione dei float con round()

C'è una sottigliezza da conoscere prima di fare affidamento su round() nel codice finanziario. Prova così:

print(round(2.675, 2))  # You might expect 2.68
# Output: 2.67

Il risultato è 2.67, non 2.68. Il valore 2.675 non può essere rappresentato esattamente in virgola mobile binaria (IEEE 754); il valore memorizzato è leggermente inferiore a 2.675, quindi Python arrotonda per difetto.

Se ti serve un arrotondamento esatto per calcoli finanziari, usa il modulo decimal con una modalità di arrotondamento esplicita:

from decimal import Decimal, ROUND_HALF_UP

result = Decimal("2.675").quantize(Decimal("0.01"), rounding=ROUND_HALF_UP)
print(result)  # 2.68

Usare le tecniche di formattazione delle stringhe per arrotondare un numero in Python

Le tecniche di formattazione delle stringhe sono utili per arrotondare i numeri a due cifre decimali, soprattutto quando si vuole visualizzare il numero in output.

Ricorda che quando usi le tecniche di formattazione delle stringhe in Python per arrotondare un numero, l'output arrotondato viene visualizzato come stringa, ma il numero originale resta invariato. Se esegui operazioni matematiche sul numero originale, i calcoli si basano sul valore non arrotondato, cosa che può portare a risultati sorprendenti.

Arrotondare con l'operatore %

L'operatore % offre un metodo tradizionale per formattare i numeri a due cifre decimali. L'operatore % consente di creare stringhe formattate inserendo valori nei segnaposto.

Nell'esempio seguente, f indica il valore come numero in virgola mobile mentre .2 specifica le cifre decimali a cui arrotondare il numero.

# Example number to be rounded
number = 3.14159

# Using the % operator to round to 2 decimal places
formatted_number = "%.2f" % number

print(formatted_number)

# 3.14

Arrotondare con str.format()

Il metodo str.format() offre un modo più flessibile per gestire tecniche di arrotondamento complesse. Poiché usa segnaposto nominati, sviluppatori tendono a preferirlo rispetto all'operatore %. Nell'esempio seguente, :.2f è usato tra parentesi graffe per specificare che il numero va arrotondato a due cifre decimali. Il codice stamperà 3.14.

# Example number to be rounded
number = 3.14159

# Using str.format() to round to 2 decimal places
formatted_number = "{:.2f}".format(number)

print(formatted_number)

# 3.14

Arrotondare con le f-string (Python 3.6+)

Le f-string sono arrivate in Python 3.6 e sono ora il modo preferito per incorporare valori nelle stringhe. La sintassi delle f-string è particolarmente pulita per l'arrotondamento: ottieni la formattazione per la visualizzazione in una riga senza chiamate separate. Il codice seguente stampa 14.68.

# Example number to be rounded
number = 14.67856

# Using f-strings to round to 2 decimal places
formatted_number = f"{number:.2f}"

print(formatted_number)

# 14.68

Usare format() per arrotondare un numero in Python

La funzione integrata format() accetta un valore e una specifica di formato e restituisce una stringa formattata. A differenza di str.format(), passi il numero direttamente invece di incorporarlo in una stringa template. Il codice seguente stampa 345.69.

# Example number to be rounded
number = 345.68776

# Using the built-in format() to round to 2 decimal places
formatted_number = format(number, ".2f")

print(formatted_number)

# 345.69

Usare altri moduli per arrotondare un numero in Python

Oltre a Python di base, ci sono molti altri moduli che puoi usare per arrotondare i numeri in Python. Ti mostrerò i tre esempi più importanti: math, decimal e NumPy.

Arrotondare usando il modulo math

Il modulo math non fornisce funzioni che arrotondano direttamente i numeri a un numero specifico di cifre decimali. Tuttavia, puoi combinare il modulo math con altre operazioni aritmetiche per arrotondare un numero a due cifre decimali.

La funzione math.floor() viene usata per arrotondare per difetto un numero all'intero più vicino. Per arrotondare per difetto un numero a due cifre decimali, moltiplicalo per 100, applica la funzione math.floor() e dividi per 100. Il codice seguente stampa 3.14.

# Import math module
import math

# Example number to be rounded
number = 3.14159

# Using math.floor() to round down to 2 decimal places
rounded_down = math.floor(number * 100) / 100

print(rounded_down)

# 3.14

Analogamente, la funzione math.ceil() arrotonda un numero per eccesso all'intero più vicino. Per arrotondare per eccesso un numero a due cifre decimali, moltiplicalo per 100, applica la funzione math.ceil() e dividi per 100. Il codice seguente stampa 3.15.

# Import the math module
import math

# Example number to be rounded
number = 3.14159

# Using math.ceil() to round up to 2 decimal places
rounded_up = math.ceil(number * 100) / 100

print(rounded_up)

# 3.15

Arrotondare usando il modulo decimal

Il modulo decimal in Python è utile per arrotondare numeri float a cifre decimali precise usando il metodo .quantize(). Nell'esempio seguente, impostiamo la precisione a 0.01 per indicare che vogliamo arrotondare il numero a due cifre decimali.

# Import the decimal module
from decimal import Decimal

# Example number to be rounded
number = Decimal("18.73869")

# Define the rounding precision to 2 decimal places
precision = Decimal('0.01')

# Using the quantize method with ROUND_UP 
# to round the number up to 2 decimal places
rounded_number = number.quantize(precision)

print(rounded_number)

# 18.74

Se cerchi un comportamento specifico di arrotondamento verso l'alto, dai un'occhiata al nostro ultimo tutorial su Come arrotondare per eccesso un numero in Python per saperne di più sull'uso dei moduli math e decimal, e su altre tecniche per assicurarti che il numero venga sempre arrotondato per eccesso, e non per difetto. Se vuoi comprendere meglio la trasformazione dei dati in generale, segui il nostro percorso di carriera Data Analyst with Python per far crescere le tue competenze analitiche.

Arrotondare usando NumPy

Quando lavori con array in NumPy, usa np.round() per arrotondare tutti gli elementi in una volta. È più veloce e più leggibile che iterare manualmente sui valori.

import numpy as np

prices = np.array([1.2345, 9.8765, 3.14159])
rounded_prices = np.round(prices, 2)

print(rounded_prices)
# [1.23 9.88 3.14]

np.round() applica la stessa regola di bankers' rounding della funzione integrata round() di Python. Il metodo .round() funziona allo stesso modo su DataFrame e Series di pandas:

import pandas as pd

df = pd.DataFrame({"price": [1.2345, 9.8765, 3.14159]})
df["price_rounded"] = df["price"].round(2)

print(df)
#      price  price_rounded
# 0   1.2345           1.23
# 1   9.8765           9.88
# 2  3.14159           3.14

Per una panoramica più ampia della trasformazione dei dati con pandas, vedi il nostro tutorial su pandas.

Quando usare ciascun metodo di arrotondamento in Python

Ecco un rapido riferimento per scegliere l'approccio di arrotondamento giusto:

Metodo Ideale per Cambia il valore? Restituisce
round(x, 2) Aritmetica generale float
f"{x:.2f}" Display / stampa No str
str.format() Display / stampa No str
% operator Display / stampa (legacy) No str
format(x, ".2f") Display / valore singolo No str
math.floor() / ceil() Sempre verso il basso / verso l'alto float
Decimal.quantize() Finanza / decimale esatto Decimal
np.round(arr, 2) Array NumPy ndarray

Alcune regole pratiche per guidare la scelta:

  • Stai solo visualizzando un numero? Usa una f-string (f"{x:.2f}"). Una riga, nessuna importazione, nessun effetto collaterale sul valore originale.

  • Devi fare aritmetica con il risultato? Usa round(x, 2). Restituisce un float con cui puoi continuare a calcolare.

  • Codice finanziario o contabile? Usa Decimal.quantize(). Le sorprese di precisione dei float (round(2.675, 2) == 2.67) non accadono con il modulo decimal.

  • Devi andare sempre in su o sempre in giù? Usa math.ceil() o math.floor(). Ignorano del tutto le regole di arrotondamento.

  • Stai lavorando con un array NumPy o una colonna pandas? Usa np.round(arr, 2) o series.round(2). Entrambi gestiscono l'intera collezione in una volta sola.

  • Stai mantenendo codice vecchio? L'operatore % funziona ancora, ma le f-string lo hanno sostituito in Python 3.6 — preferiscile nel nuovo codice.

Considerazioni finali

Arrotondare i numeri a due cifre decimali è una tecnica importante per migliorare la precisione nei calcoli finanziari e scientifici. In questo articolo, abbiamo discusso i diversi metodi per arrotondare i numeri a due cifre decimali, incluse le funzioni integrate, le tecniche di formattazione delle stringhe e il modulo math. È importante comprendere e selezionare il metodo appropriato in base ai requisiti specifici, come la precisione e lo stile di formattazione. Ti incoraggio a esercitarti con i diversi metodi usando vari esempi per capire meglio quale si adatta meglio ai tuoi casi d'uso.

Se vuoi far progredire le tue competenze in Python, consulta il nostro percorso di abilità Python Programming, che copre funzioni, decorator e pattern avanzati in Python. Il nostro percorso di carriera Python Developer è inoltre pensato per aiutarti a crescere come sviluppatore mentre impari strutture dati e algoritmi più avanzati.


Allan Ouko's photo
Author
Allan Ouko
LinkedIn
Technical writer di Data Science con esperienza pratica in data analytics, business intelligence e data science. Scrivo contenuti pratici e orientati al settore su SQL, Python, Power BI, Databricks e data engineering, basati su lavoro di analytics reale. La mia scrittura unisce profondità tecnica e impatto sul business, aiutando i professionisti a trasformare i dati in decisioni sicure.

Domande frequenti

Qual è il modo più semplice per arrotondare un numero a due cifre decimali in Python?

Il modo più semplice per arrotondare un numero a due cifre decimali è usare la funzione integrata round().

Perché un numero viene arrotondato all'intero più vicino usando la funzione round()?

Il metodo predefinito di round() è round half to even. Per arrotondare un numero a due cifre decimali, devi fornire il secondo argomento come 2 nella funzione, cioè round(3.14159, 2).

Come si usa la funzione format() per arrotondare un numero a due cifre decimali?

La funzione format() si usa per arrotondare un numero al numero specificato di cifre decimali e visualizzarlo all'interno di una stringa formattata.

Che cos'è il round half to even?

Il metodo round half to even, o bankers’ rounding, prevede di arrotondare un numero esattamente a metà tra due interi all'intero pari più vicino.

Il modulo math consente di arrotondare un numero a due cifre decimali in Python?

Puoi usare le funzioni math.floor() e math.ceil() solo insieme ad altre operazioni aritmetiche per arrotondare un numero a un numero specificato di cifre decimali.

Perché round(2.675, 2) restituisce 2.67 invece di 2.68?

È un problema di precisione della virgola mobile. Il valore 2.675 non può essere rappresentato esattamente in virgola mobile binaria (IEEE 754); il valore memorizzato è leggermente inferiore a 2.675, quindi Python arrotonda a 2.67.

Per evitarlo nel codice finanziario, usa il modulo decimal con una modalità di arrotondamento esplicita: Decimal("2.675").quantize(Decimal("0.01"), rounding=ROUND_HALF_UP) restituisce 2.68 come previsto.

Come arrotondo tutti i valori in un DataFrame pandas a 2 cifre decimali?

Usa il metodo .round() su un DataFrame o una Series. Per arrotondare una singola colonna: df["price"] = df["price"].round(2). Per arrotondare tutte le colonne numeriche in una volta: df = df.round(2).

Argomenti

Impara Python con DataCamp

Corso

Introduzione a Python

4 h
6.9M
Impara le basi dell’analisi dei dati con Python in sole 4 ore. Questo corso online ti introduce all’interfaccia di Python e ai pacchetti più usati.
Vedi dettagliRight Arrow
Inizia il corso
Mostra altroRight Arrow
Correlato

blog

Tokenizzazione nel NLP: come funziona, sfide e casi d'uso

Guida al preprocessing NLP nel machine learning. Copriamo spaCy, i transformer di Hugging Face e come funziona la tokenizzazione in casi d'uso reali.
Abid Ali Awan's photo

Abid Ali Awan

10 min

blog

I 15 migliori server MCP remoti che ogni AI builder dovrebbe conoscere nel 2026

Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Abid Ali Awan's photo

Abid Ali Awan

15 min

blog

Che cos'è Snowflake? Guida per principianti alla piattaforma dati cloud

Esplora le basi di Snowflake, la piattaforma dati cloud. Scopri la sua architettura, le sue funzionalità e come integrarla nelle tue pipeline di dati.
Tim Lu's photo

Tim Lu

12 min

Mostra altroMostra altro