Python round()-Funktion mit Beispielen
โก Intelligente Zusammenfassung
Python round() ist eine eingebaute Funktion, die einen Gleitkomma- oder Ganzzahlwert zurรผckgibt, der auf eine bestimmte Anzahl von Dezimalstellen gerundet wird, wobei bei Gleichstand die Banker-Rundung zur nรคchsten geraden Ziffer angewendet wird.

Was ist die round()-Funktion in Python?
Python round() ist eine integrierte Funktion, die verfรผgbar ist mit PythonEs wird eine Gleitkommazahl zurรผckgegeben, die auf die als Eingabe angegebene Anzahl an Dezimalstellen gerundet wird.
Wenn die zu rundenden Dezimalstellen nicht angegeben sind, wird es als 0 betrachtet und auf die nรคchste Ganzzahl gerundet.
Syntax
round(float_num, num_of_decimals)
Kenngrรถรen
- float_num: Die Gleitkommazahl soll gerundet werden.
- Anzahl_Dezimalstellen: (Optional) Die Anzahl der Dezimalstellen, die beim Runden berรผcksichtigt werden sollen. Diese Angabe ist optional; wird sie nicht verwendet, ist der Standardwert 0, und es wird auf die nรคchste ganze Zahl gerundet.
Beschreibung
Die round()-Methode benรถtigt zwei Argumente:
- die zu rundende Zahl,
- die Dezimalstellen, die beim Runden berรผcksichtigt werden sollen.
Das zweite Argument ist optional und hat standardmรครig den Wert 0, wenn es nicht angegeben wird. In diesem Fall wird auf die nรคchste ganze Zahl gerundet, und der Rรผckgabetyp ist ebenfalls eine ganze Zahl.
Wenn die Nachkommastellen, also das zweite Argument, vorhanden sind, wird auf die angegebene Stellenzahl gerundet. Der Rรผckgabetyp ist ein Float.
Wenn die Zahl nach dem Komma lautet:
- Bei >= 5 wird zum Endwert + 1 addiert.
- < 5, dann wird der Endwert unverรคndert bis auf die angegebene Anzahl an Dezimalstellen zurรผckgegeben.
Rรผckgabewert
Die Funktion gibt einen Integer-Wert zurรผck, wenn `num_of_decimals` nicht angegeben ist, und einen Float-Wert, wenn `num_of_decimals` angegeben ist. Der Wert wird auf +1 gerundet, wenn die Zahl nach dem Komma mindestens 5 betrรคgt; andernfalls wird der Wert bis zur angegebenen Anzahl an Dezimalstellen unverรคndert zurรผckgegeben.
Welchen Einfluss kann Rundung haben? (Rundung vs. Kรผrzung)
Das beste Beispiel, um die Auswirkungen von Rundungen zu veranschaulichen, ist der Aktienmarkt. In der Vergangenheit, also im Jahr 1982, Vancouver-Bรถrse (VSE) wurde verwendet, um die Aktienkurse bei jedem Handel auf drei Dezimalstellen zu runden.
Dies geschah fast 3000 Mal tรคglich. Die dadurch akkumulierten Kรผrzungen fรผhrten zu einem Verlust von rund 25 Punkten pro Monat.
Ein Beispiel fรผr das Abschneiden der Werte im Vergleich zum Runden ist unten dargestellt.
Betrachten Sie die unten generierten Gleitkommazahlen als Aktienkurse. Aktuell generiere ich sie fรผr einen Bereich von 1,000,000 Sekunden zwischen 0.01 und 0.05.
Beispiele:
arr = [random.uniform(0.01, 0.05) for _ in range(1000000)]
Um die Auswirkungen des Rundens zu verdeutlichen, habe ich ein kleines Codefragment geschrieben, in dem zunรคchst die Zahlen nur bis zu 3 Dezimalstellen gerundet werden, d. h. die Zahl nach 3 Dezimalstellen abgeschnitten wird.
Ich habe den ursprรผnglichen Gesamtwert, den Gesamtwert nach den gekรผrzten Werten und die Differenz zwischen dem ursprรผnglichen und dem gekรผrzten Wert.
Anhand desselben Zahlensatzes habe ich die round()-Methode bis auf 3 Dezimalstellen angewendet und die Summe sowie die Differenz zwischen dem ursprรผnglichen Wert und dem gerundeten Wert berechnet.
Hier sind das Beispiel und die Ausgabe.
Beispiel 1
import random def truncate(num): return int(num * 1000) / 1000 arr = [random.uniform(0.01, 0.05) for _ in range(1000000)] sum_num = 0 sum_truncate = 0 for i in arr: sum_num = sum_num + i sum_truncate = truncate(sum_truncate + i) print("Testing by using truncating upto 3 decimal places") print("The original sum is = ", sum_num) print("The total using truncate = ", sum_truncate) print("The difference from original - truncate = ", sum_num - sum_truncate) print("\n\n") print("Testing by using round() upto 3 decimal places") sum_num1 = 0 sum_truncate1 = 0 for i in arr: sum_num1 = sum_num1 + i sum_truncate1 = round(sum_truncate1 + i, 3) print("The original sum is =", sum_num1) print("The total using round = ", sum_truncate1) print("The difference from original - round =", sum_num1 - sum_truncate1)
Ausgang:
Testing by using truncating upto 3 decimal places The original sum is = 29985.958619386867 The total using truncate = 29486.057 The difference from original - truncate = 499.9016193868665 Testing by using round() up to 3 decimal places The original sum is = 29985.958619386867 The total using round = 29985.912 The difference from original - round = 0.04661938686695066
Die Differenz zwischen dem ursprรผnglichen und dem abgeschnittenen Wert betrรคgt 499.9016193868665, und nach der Rundung (round()) betrรคgt sie 0.04661938686695066.
Der Unterschied scheint sehr groร zu sein, und das Beispiel zeigt, wie die round()-Methode dabei hilft, eine nahezu genaue Berechnung zu ermรถglichen.
Beispiel: Rundungskomma Numbers
In diesem Programm werden wir sehen, wie das Runden von Gleitkommazahlen funktioniert.
# testing round() float_num1 = 10.60 # here the value will be rounded to 11 as after the decimal point the number is 6 that is >5 float_num2 = 10.40 # here the value will be rounded to 10 as after the decimal point the number is 4 that is <=5 float_num3 = 10.3456 # here the value will be 10.35 as after the 2 decimal points the value >=5 float_num4 = 10.3445 #here the value will be 10.34 as after the 2 decimal points the value is <5 print("The rounded value without num_of_decimals is :", round(float_num1)) print("The rounded value without num_of_decimals is :", round(float_num2)) print("The rounded value with num_of_decimals as 2 is :", round(float_num3, 2)) print("The rounded value with num_of_decimals as 2 is :", round(float_num4, 2))
Ausgang:
The rounded value without num_of_decimals is : 11 The rounded value without num_of_decimals is : 10 The rounded value with num_of_decimals as 2 is : 10.35 The rounded value with num_of_decimals as 2 is : 10.34
Beispiel: Ganzzahlwerte runden
Wenn Sie โround()โ fรผr einen ganzzahligen Wert verwenden, erhalten Sie einfach die Zahl ohne รnderungen zurรผck.
# testing round() on a integer num = 15 print("The output is", round(num))
Ausgang:
The output is 15
Beispiel: Auf Negativ runden Numbers
Schauen wir uns einige Beispiele an, wie das Runden negativer Zahlen funktioniert.
# testing round() num = -2.8 num1 = -1.5 print("The value after rounding is", round(num)) print("The value after rounding is", round(num1))
Ausgang:
C:\pythontest>python testround.py The value after rounding is -3 The value after rounding is -2
Beispiel: Runden von NumPy-Arrays
Wie rundet man in NumPy? Arrays in Python?
Um dieses Problem zu lรถsen, kรถnnen wir das NumPy-Modul nutzen und die Methode numpy.round() oder numpy.around() verwenden, wie im folgenden Beispiel gezeigt.
Verwenden von numpy.round()
# testing round() import numpy as np arr = [-0.341111, 1.455098989, 4.232323, -0.3432326, 7.626632, 5.122323] arr1 = np.round(arr, 2) print(arr1)
Ausgang:
C:\pythontest>python testround.py [-0.34 1.46 4.23 -0.34 7.63 5.12]
Alternativ kรถnnen wir auch numpy.around() verwenden, was zum gleichen Ergebnis fรผhrt wie das oben gezeigte numpy.round().
Beispiel: Dezimalmodul
Zusรคtzlich zur round()-Funktion Python verfรผgt รผber ein Dezimalmodul, das die genauere Verarbeitung von Dezimalzahlen ermรถglicht.
Das Dezimalmodul bietet verschiedene Rundungstypen, wie unten dargestellt:
- RUNDE DECKE: Es wird sich in Richtung Unendlich runden.
- ABRUNDEN: Der Wert wird in Richtung Null gerundet.
- RUNDER BODEN: Es wird sich gegen -Unendlich runden.
- ABRUNDEN_HALB_AB: Es wird auf den nรคchstliegenden Wert in Richtung Null gerundet.
- ROUND_HALF_EVEN: Es wird auf den nรคchstliegenden Wert gerundet, wobei die nรคchste gerade Zahl folgt.
- AUFRUNDEN: Es wird auf den nรคchstliegenden Wert von Null gerundet.
- AUFRUNDEN: Es wird gerundet, sobald der Wert von Null abweicht.
Im Dezimalformat hilft die Methode quantize() dabei, auf eine feste Anzahl von Dezimalstellen zu runden, und Sie kรถnnen die zu verwendende Rundung angeben, wie im folgenden Beispiel gezeigt.
Ejemplo: Verwendung von Round()- und Dezimalmethoden
import decimal round_num = 15.456 final_val = round(round_num, 2) #Using decimal module final_val1 = decimal.Decimal(round_num).quantize(decimal.Decimal('0.00'), rounding=decimal.ROUND_CEILING) final_val2 = decimal.Decimal(round_num).quantize(decimal.Decimal('0.00'), rounding=decimal.ROUND_DOWN) final_val3 = decimal.Decimal(round_num).quantize(decimal.Decimal('0.00'), rounding=decimal.ROUND_FLOOR) final_val4 = decimal.Decimal(round_num).quantize(decimal.Decimal('0.00'), rounding=decimal.ROUND_HALF_DOWN) final_val5 = decimal.Decimal(round_num).quantize(decimal.Decimal('0.00'), rounding=decimal.ROUND_HALF_EVEN) final_val6 = decimal.Decimal(round_num).quantize(decimal.Decimal('0.00'), rounding=decimal.ROUND_HALF_UP) final_val7 = decimal.Decimal(round_num).quantize(decimal.Decimal('0.00'), rounding=decimal.ROUND_UP) print("Using round()", final_val) print("Using Decimal - ROUND_CEILING ",final_val1) print("Using Decimal - ROUND_DOWN ",final_val2) print("Using Decimal - ROUND_FLOOR ",final_val3) print("Using Decimal - ROUND_HALF_DOWN ",final_val4) print("Using Decimal - ROUND_HALF_EVEN ",final_val5) print("Using Decimal - ROUND_HALF_UP ",final_val6) print("Using Decimal - ROUND_UP ",final_val7)
Ausgang:
Using round() 15.46 Using Decimal - ROUND_CEILING 15.46 Using Decimal - ROUND_DOWN 15.45 Using Decimal - ROUND_FLOOR 15.45 Using Decimal - ROUND_HALF_DOWN 15.46 Using Decimal - ROUND_HALF_EVEN 15.46 Using Decimal - ROUND_HALF_UP 15.46 Using Decimal - ROUND_UP 15.46
