So runden Sie eine Zahl in Python (round()-Funktion und Dezimalzahl)
Erfahren Sie, wie Sie Gleitkommazahlen in Python runden. Machen Sie sich mit der Rundung, der benutzerdefinierten Dezimalgenauigkeit und der Formatierung von Gleitkommazahlen für die Anzeige vertraut.
Übersicht
Gleitkomma-Arithmetik in Computern kann aufgrund der Art und Weise, wie binäre Systeme Dezimalzahlen speichern, manchmal zu unerwarteten Genauigkeitsproblemen führen (z. B. „0,1 + 0,2“ ergibt „0,30000000000000004“). Beim Rendern von Zahlen an Benutzer oder beim Vorbereiten von Metriken ist das Runden von Zahlen eine häufige Anforderung. Python bietet mehrere Möglichkeiten, dies zu erreichen.
Das Hauptwerkzeug ist die integrierte Funktion „runden(Zahl, Ziffern)“. Es benötigt eine Zahl und eine optionale Präzisionszählung. Wenn „ndigits“ weggelassen wird, wird auf die nächste Ganzzahl gerundet. Wenn „ndigits“ angegeben wird, wird auf die entsprechende Anzahl Dezimalstellen gerundet.
Eine Schlüsseleigenschaft der Python-Funktion „round()“ besteht darin, dass sie die „Banker-Rundung“ (von halb auf gerade runden) verwendet. Wenn eine Zahl genau in der Mitte zwischen zwei ganzen Zahlen liegt (z. B. „2,5“ oder „3,5“), rundet Python auf die nächste *gerade* Zahl. Das bedeutet, dass „round(2.5)“ „2“ und „round(3.5)“ „4“ ist. Während dies bei großen Datensätzen mathematisch fair ist, um eine Aufwärtsverzerrung zu verhindern, sollten Sie für präzise Finanzberechnungen die Quantisierungswerkzeuge des Moduls „Dezimal“ verwenden.
Code- und Ausführungsausgabe
Dieses Skript demonstriert das Runden von Gleitkommazahlen mit der integrierten Rundungsfunktion, den Rundungsbeispielen von Banker und dem Dezimalmodul.
from decimal import Decimal, ROUND_HALF_UP
val = 3.14159
# 1. Round to nearest integer
print("Nearest Integer:", round(val))
# 2. Round to 2 decimal places
print("Two decimals:", round(val, 2))
# 3. Banker's Rounding demonstration (rounds to nearest even)
print("round(2.5):", round(2.5)) # Nearest even is 2
print("round(3.5):", round(3.5)) # Nearest even is 4
# 4. Math rounding up (Traditional rounding) using decimal module
amount = Decimal("2.5")
rounded_up = amount.quantize(Decimal("1"), rounding=ROUND_HALF_UP)
print("Decimal ROUND_HALF_UP (2.5):", rounded_up)Nearest Integer: 3
Two decimals: 3.14
round(2.5): 2
round(3.5): 4
Decimal ROUND_HALF_UP (2.5): 3Schrittweise Umsetzung
- Rufen Sie die integrierte Funktion „round(number)“ auf, um eine Gleitkommazahl auf die nächste ganze Zahl zu runden.
- Übergeben Sie ein zweites Argument (z. B. Round(num, 2)), um die Anzahl der zu behaltenden Dezimalstellen anzugeben.
- Verwenden Sie das Dezimalmodul mit ROUND_HALF_UP für strenge finanzielle Rundungsberechnungen.
Häufig gestellte Fragen
Warum gibt Round(2.5) in Python 2 statt 3 zurück?
Python verwendet die Banker-Rundung, die halbe Zahlen auf die nächste gerade ganze Zahl rundet. Dies verringert die statistische Verzerrung (das Aufrunden halber Zahlen führt bei großen Datensätzen immer zu einer leichten Aufwärtsdrift).
Wie runde ich eine Zahl immer auf oder ab?
Importieren Sie das Mathematikmodul und verwenden Sie math.ceil(x), um auf die nächste Ganzzahl aufzurunden, oder math.floor(x), um auf die vorherige Ganzzahl abzurunden.
Verwandte Themen
Lernen Sie die besten String-Formatierungstechniken in Python kennen. Vergleichen Sie moderne F-Strings, format() und prozentuale Formatierung mit Codebeispielen.
So konvertieren Sie String in Int in PythonErfahren Sie, wie Sie in Python mithilfe der Funktion int() einen String in eine Ganzzahl konvertieren. Behandeln Sie Fehler sicher und konvertieren Sie Zahlen aus Binär-, Oktal- oder Hexadezimalwerten.
Empfohlene Python-Ressourcen
Erweitern Sie Ihr Wissen mit zugehörigen interaktiven Tutorials, Spickzetteln und Codevergleichen.
Python-Variablen und Datentypen erklärt
Verstehen Sie Python-Variablen und Kerndatentypen (Strings, Ganzzahlen, Gleitkommazahlen, Boolesche Werte). Eine vollständige Einsteigeranleitung zur Speicherzuweisung in Python.
Spickzettel für Python-Wörterbuchmethoden
Lernen Sie Python-Wörterbuchmethoden. Vollständiges Referenzhandbuch für das Einfügen, Abrufen, Aktualisieren und Überprüfen von Schlüssel-Wert-Paaren.
Python vs. JavaScript: Welche Programmiersprache ist die beste?
Ein umfassender Vergleich zwischen Python und JavaScript. Entdecken Sie Syntaxunterschiede, Leistung, Anwendungsfälle (Backend vs. Frontend) und Codierungsbeispiele.