Runden()
Round () ist eine integrierte Funktion, die mit Python verfügbar ist. Sie erhalten eine Gleitkommazahl, die auf die als Eingabe angegebenen Dezimalstellen gerundet wird.
Wenn die zu rundenden Dezimalstellen nicht angegeben werden, wird sie als 0 betrachtet und auf die nächste Ganzzahl gerundet.
In diesem Python-Tutorial lernen Sie:
- Runden()
- Syntax:
- Wie viel Einfluss kann Rundung haben? (Rundung gegen Kürzung)
- Beispiel: Runden von Float-Nummern
- Beispiel: Ganzzahlwerte runden
- Beispiel: Rundung auf negative Zahlen
- Beispiel: Round Numpy Arrays
- Beispiel: Dezimalmodul
Syntax:
round(float_num, num_of_decimals)
Parameter
- float_num: Die zu rundende Float-Nummer.
- Anzahl der Dezimalstellen: (optional) Die Anzahl der Dezimalstellen, die beim Runden berücksichtigt werden sollen. Es ist optional und wenn nicht angegeben, wird standardmäßig 0 verwendet, und die Rundung erfolgt auf die nächste Ganzzahl.
Beschreibung
Die round () -Methode akzeptiert zwei Argumente
- die zu rundende Zahl und
- die Dezimalstellen, die beim Runden berücksichtigt werden sollten.
Das zweite Argument ist optional und standardmäßig 0, wenn es nicht angegeben wird. In diesem Fall wird es auf die nächste Ganzzahl gerundet, und der Rückgabetyp ist ebenfalls eine Ganzzahl.
Wenn die Dezimalstellen, dh das zweite Argument, vorhanden sind, wird auf die Anzahl der angegebenen Stellen gerundet. Der Rückgabetyp ist ein Float.
Wenn die Zahl nach der Dezimalstelle angegeben ist
- > = 5 als + 1 wird zum Endwert addiert
- <5 als der Endwert wird zurückgegeben, da es sich um die angegebenen Dezimalstellen handelt.
Rückgabewert
Es wird ein ganzzahliger Wert zurückgegeben, wenn die Anzahl der Dezimalstellen nicht angegeben ist, und ein Gleitkommawert, wenn die Anzahl der Dezimalzahlen angegeben ist. Bitte beachten Sie, dass der Wert auf +1 gerundet wird, wenn der Wert nach dem Dezimalpunkt> = 5 ist. Andernfalls wird der Wert so zurückgegeben, wie er bis zu den angegebenen Dezimalstellen ist.
Wie viel Einfluss kann Rundung haben? (Rundung gegen Kürzung)
Das beste Beispiel für die Auswirkungen von Rundungen ist der Börsenmarkt. In der Vergangenheit, dh im Jahr 1982, wurde die Vancouver Stock Exchange (VSE) verwendet, um die Aktienwerte bei jedem Trade auf drei Dezimalstellen zu kürzen.
Es wurde fast 3000 Mal pro Tag gemacht. Die angesammelten Kürzungen führen zu einem Verlust von rund 25 Punkten pro Monat.
Ein Beispiel für das Abschneiden der Werte gegenüber dem Runden ist unten gezeigt.
Betrachten Sie die unten generierten Gleitkommazahlen als Aktienwerte. Im Moment generiere ich es für eine Reihe 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 Auswirkung der Rundung zu zeigen, habe ich einen kleinen Code geschrieben, in dem Sie zunächst die Zahlen mit nur 3 Dezimalstellen verwenden müssen, dh die Zahl nach 3 Dezimalstellen abschneiden.
Ich habe den ursprünglichen Gesamtwert, die Summe aus abgeschnittenen Werten und die Differenz zwischen ursprünglichem und abgeschnittenem Wert.
Für denselben Satz von Zahlen habe ich die round () -Methode mit bis zu 3 Dezimalstellen verwendet und die Summe und die Differenz zwischen dem ursprünglichen Wert und dem gerundeten Wert berechnet.
Hier sind das Beispiel und die Ausgabe
Beispiel 1
import randomdef truncate(num):return int(num * 1000) / 1000arr = [random.uniform(0.01, 0.05) for _ in range(1000000)]sum_num = 0sum_truncate = 0for i in arr:sum_num = sum_num + isum_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 = 0sum_truncate1 = 0for i in arr:sum_num1 = sum_num1 + isum_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)
Ausgabe:
Testing by using truncating upto 3 decimal placesThe original sum is = 29985.958619386867The total using truncate = 29486.057The difference from original - truncate = 499.9016193868665Testing by using round() up to 3 decimal placesThe original sum is = 29985.958619386867The total using round = 29985.912The difference from original - round = 0.04661938686695066
Der Unterschied zwischen Original und nach dem Abschneiden beträgt 499.9016193868665 und von rund 0,04661938686695066
Der Unterschied scheint sehr groß zu sein, und das Beispiel zeigt, wie die Methode round () bei der Berechnung nahe an der Genauigkeit hilft.
Beispiel: Runden von Float-Nummern
In diesem Programm werden wir sehen, wie Wörter auf gleitenden Zahlen gerundet werden
# 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 >5float_num2 = 10.40 # here the value will be rounded to 10 as after the decimal point the number is 4 that is <=5float_num3 = 10.3456 # here the value will be 10.35 as after the 2 decimal points the value >=5float_num4 = 10.3445 #here the value will be 10.34 as after the 2 decimal points the value is <5print("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))
Ausgabe:
The rounded value without num_of_decimals is : 11The rounded value without num_of_decimals is : 10The rounded value with num_of_decimals as 2 is : 10.35The 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 die Zahl ohne Änderungen zurück.
# testing round() on a integernum = 15print("The output is", round(num))
Ausgabe:
The output is 15
Beispiel: Rundung auf negative Zahlen
Lassen Sie uns einige Beispiele dafür sehen, wie die Rundung bei negativen Zahlen funktioniert
# testing round()num = -2.8num1 = -1.5print("The value after rounding is", round(num))print("The value after rounding is", round(num1))
Ausgabe:
C:\pythontest>python testround.pyThe value after rounding is -3The value after rounding is -2
Beispiel: Round Numpy Arrays
Wie runde ich numpy Arrays in Python?
Um dies zu lösen, können wir das numpy-Modul verwenden und die Methode numpy.round () oder numpy.around () verwenden, wie im folgenden Beispiel gezeigt.
Verwenden von numpy.round ()
# testing round()import numpy as nparr = [-0.341111, 1.455098989, 4.232323, -0.3432326, 7.626632, 5.122323]arr1 = np.round(arr, 2)print(arr1)
Ausgabe:
C:\pythontest>python testround.py[-0.34 1.46 4.23 -0.34 7.63 5.12]
Wir können auch numpy.around () verwenden, wodurch Sie das gleiche Ergebnis wie im folgenden Beispiel erhalten.
Beispiel: Dezimalmodul
Zusätzlich zur Funktion round () verfügt Python über ein Dezimalmodul, mit dem Dezimalzahlen genauer behandelt werden können.
Das Dezimalmodul wird mit Rundungstypen geliefert, wie unten gezeigt:
- ROUND_CEILING: Es wird sich in Richtung Unendlichkeit runden.
- ROUND_DOWN: Der Wert wird auf Null gerundet.
- ROUND_FLOOR: Es wird in Richtung -Infinity gerundet.
- ROUND_HALF_DOWN: Es wird auf den nächsten Wert gerundet, der gegen Null geht.
- ROUND_HALF_EVEN: Es wird auf den nächsten gerundet, wobei der Wert auf die nächste gerade ganze Zahl geht.
- ROUND_HALF_UP: Es wird auf den nächsten Wert gerundet, wobei der Wert von Null abweicht
- ROUND_UP: Es wird gerundet, wo der Wert von Null weggeht.
Bei Dezimalstellen hilft die quantize () -Methode beim Runden auf eine feste Anzahl von Dezimalstellen, und Sie können die zu verwendende Rundung angeben, wie im folgenden Beispiel gezeigt.
Beispiel:
Verwenden Sie die Methoden round () und decimal
import decimalround_num = 15.456final_val = round(round_num, 2)#Using decimal modulefinal_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)
Ausgabe:
Using round() 15.46Using Decimal - ROUND_CEILING 15.46Using Decimal - ROUND_DOWN 15.45Using Decimal - ROUND_FLOOR 15.45Using Decimal - ROUND_HALF_DOWN 15.46Using Decimal - ROUND_HALF_EVEN 15.46Using Decimal - ROUND_HALF_UP 15.46Using Decimal - ROUND_UP 15.46
Zusammenfassung:
- Round (float_num, Num_of_decimals) ist eine integrierte Funktion, die mit Python verfügbar ist. Sie erhalten die Gleitkommazahl, die auf die als Eingabe angegebenen Dezimalstellen gerundet wird.
- float_num: Die zu rundende Float-Nummer.
- Anzahl der Dezimalstellen: Dies ist die Anzahl der Dezimalstellen, die beim Runden berücksichtigt werden müssen.
- Es wird ein ganzzahliger Wert zurückgegeben, wenn die Anzahl der Dezimalstellen nicht angegeben ist, und ein Gleitkommawert, wenn die Anzahl der Dezimalzahlen angegeben ist.