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.

Probieren Sie diese Lösung im Editor aus

Ü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)
Terminal-Ausgabe
Nearest Integer: 3
Two decimals: 3.14
round(2.5): 2
round(3.5): 4
Decimal ROUND_HALF_UP (2.5): 3

Schrittweise 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

Empfohlene Python-Ressourcen

Erweitern Sie Ihr Wissen mit zugehörigen interaktiven Tutorials, Spickzetteln und Codevergleichen.