La funzione round () restituisce un numero a virgola mobile arrotondato al numero di decimali specificato.
La sintassi della round()
funzione è:
round (numero, ndigits)
round () Parametri
La round()
funzione accetta due parametri:
- numero - il numero da arrotondare
- ndigits (opzionale) - numero fino al quale viene arrotondato il numero specificato; il valore predefinito è 0
Valore restituito da round ()
- Se
ndigits
non viene fornito,round()
restituisce il numero intero più vicino al numero specificato. - Se
ndigits
viene fornito,round()
restituisce il numero arrotondato allendigits
cifre.
Esempio 1: come funziona round () in Python?
# for integers print(round(10)) # for floating point print(round(10.7)) # even choice print(round(5.5))
Produzione
10 11 6
Esempio 2: arrotondare un numero al numero di cifre decimali specificato
print(round(2.665, 2)) print(round(2.675, 2))
Produzione
2.67 2.67
Nota : il comportamento di round()
for float può essere sorprendente. L'avviso round(2.675, 2)
dà 2.67
invece del previsto 2.68
. Questo non è un bug: è il risultato del fatto che la maggior parte delle frazioni decimali non può essere rappresentata esattamente come un float.
Quando il decimale 2.675
viene convertito in un numero binario a virgola mobile, viene nuovamente sostituito con un'approssimazione binaria, il cui valore esatto è:
2.67499999999999982236431605997495353221893310546875
A causa di ciò, viene arrotondato a 2,67.
Se ti trovi in una situazione in cui è necessaria questa precisione, considera l'utilizzo del decimal
modulo, progettato per l'aritmetica in virgola mobile:
from decimal import Decimal # normal float num = 2.675 print(round(num, 2)) # using decimal.Decimal (passed float as string for precision) num = Decimal('2.675') print(round(num, 2))
Produzione
2.67 2.68