Python rotondo ()

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 ndigitsnon viene fornito, round()restituisce il numero intero più vicino al numero specificato.
  • Se ndigitsviene fornito, round()restituisce il numero arrotondato alle ndigitscifre.

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)2.67invece 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.675viene 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 decimalmodulo, 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

Articoli interessanti...