Geschrieben von: Robert Mertens | Letztes Update: 

Runden in Python: Erklärung & Anwendung

Python bietet verschiedene Möglichkeiten zum Runden von Zahlen. In diesem Artikel werde ich einige Methoden vorstellen, mit denen man Zahlen in Python auf unterschiedliche Weisen runden kann. Dazu gehören die Verwendung der Funktionen round, math.ceil und math.floor, sowie die Nutzung der Decimal-Klasse. Ich werde auch erklären, wie man eigene Klassen implementieren kann, um das Runden von Zahlen anzupassen.

Schlüsselerkenntnisse:

  • Python bietet mehrere Methoden zum Runden von Zahlen.
  • Die Funktion round rundet eine Zahl auf eine bestimmte Anzahl von Dezimalstellen oder auf die nächste ganze Zahl.
  • Die math-Bibliothek enthält die Funktionen math.ceil und math.floor zum Aufrunden bzw. Abrunden von Zahlen.
  • Mit der Decimal-Klasse kann man Dezimalzahlen mit hoher Genauigkeit runden.
  • Es ist möglich, eigene Rundungsalgorithmen in Python zu implementieren.

Das Runden mit der Funktion `round` in Python

Mit der Funktion round kann man Zahlen in Python auf eine bestimmte Anzahl von Dezimalstellen runden. Man kann auch eine ganze Zahl angeben, um auf die nächste ganze Zahl zu runden. Der Befehl sieht folgendermaßen aus round(Zahl, Dezimalstellen). Wenn keine Dezimalstellen angegeben werden, wird standardmäßig auf die nächste ganze Zahl gerundet.

Um das Runden mit der Funktion round zu verdeutlichen, betrachten wir ein Beispiel:


x = 4.5632
gerundet_auf_2_stellen = round(x, 2)
gerundet_auf_ganze_zahl = round(x)

Im obigen Beispiel wird die Zahl x auf 2 Dezimalstellen gerundet und das Ergebnis wird der Variable gerundet_auf_2_stellen zugewiesen. Die Funktion round wird auch ohne die Angabe der Dezimalstellen verwendet, um auf die nächste ganze Zahl zu runden. Das Ergebnis wird in der Variable gerundet_auf_ganze_zahl gespeichert.

Der Befehl round ist sehr praktisch, um Zahlen in Python schnell und einfach zu runden. In den nächsten Abschnitten werden wir weitere Rundungsmethoden in Python kennenlernen.

Das Runden mit der `math`-Bibliothek in Python

YouTube Video

In Python gibt es neben der Funktion `round` auch die Möglichkeit, die `math`-Bibliothek zu verwenden, um Zahlen auf bestimmte Stellen zu runden. Diese Bibliothek enthält die Funktionen `math.ceil` und `math.floor`, mit denen man Zahlen aufrunden bzw. abrunden kann.

Mit der Funktion `math.ceil` wird eine Zahl immer aufgerundet, d.h. sie wird auf die nächstgrößere Ganzzahl gerundet. Das ist besonders nützlich, wenn man sicherstellen möchte, dass eine Zahl immer nach oben gerundet wird, unabhängig von ihrem Dezimalteil.

Im Gegensatz dazu rundet die Funktion `math.floor` eine Zahl immer ab, d.h. sie wird auf die nächstkleinere Ganzzahl gerundet. Diese Funktion ist hilfreich, wenn man sicherstellen möchte, dass eine Zahl immer abgerundet wird, unabhängig von ihrem Dezimalteil.

Runden mit `math.ceil` und `math.floor` – Beispiele:

  • math.ceil(3.7) ergibt 4
  • math.ceil(5.2) ergibt 6
  • math.floor(3.7) ergibt 3
  • math.floor(5.2) ergibt 5

Neben den Funktionen `ceil` und `floor` bietet die `math`-Bibliothek auch viele weitere mathematische Funktionen, die bei der Manipulation von Zahlen in Python nützlich sein können.

Jetzt, da wir die Grundlagen der Rundung mit der `math`-Bibliothek kennen, werden wir uns in der nächsten Sektion mit der `Decimal`-Klasse befassen, die eine hohe Genauigkeit bei der Darstellung von Dezimalzahlen in Python bietet.

Die Implementierung eigener Rundungsalgorithmen in Python

In Python haben Sie die Möglichkeit, eigene Klassen zu implementieren, um das Runden von Zahlen nach Ihren Bedürfnissen anzupassen. Eine Möglichkeit, dies zu tun, ist die Verwendung der magic method __round__. Diese Methode ermöglicht es Ihnen, das Runden einer Zahl auf eine bestimmte Dezimalstelle zu definieren. Hier ist ein Beispiel, wie Sie die __round__-Methode in einer eigenen Klasse implementieren können:

<pre><code>class MeinRunderKlasse:
    def __init__(self, zahl):
        self.zahl = zahl

    def __round__(self, dezimalstellen):
        faktor = 10 ** dezimalstellen
        gerundete_zahl = round(self.zahl * faktor) / faktor
        return gerundete_zahl</code></pre>

In diesem Beispiel verwenden wir die round-Funktion, um die Zahl zu runden. Wir multiplizieren die Zahl zuerst mit einem Faktor, der von der Anzahl der Dezimalstellen abhängt, auf die gerundet werden soll. Anschließend teilen wir die gerundete Zahl durch den Faktor, um das Ergebnis zurückzugeben.

Eine weitere Möglichkeit, eigene Rundungsalgorithmen zu implementieren, ist die Verwendung des “Round half up”-Algorithmus. Dieser Algorithmus rundet eine Zahl auf die nächste Ganzzahl auf. Hier ist eine Implementierung des “Round half up”-Algorithmus:

<pre><code>def round_half_up(zahl):
    gerundete_zahl = int(zahl + 0.5)
    return gerundete_zahl</code></pre>

Bei diesem Algorithmus wird die Zahl zuerst um 0,5 erhöht und dann in eine Ganzzahl umgewandelt. Dadurch wird die Zahl auf die nächste Ganzzahl aufgerundet.

Das Runden von Dezimalzahlen in Python

Das decimal-Modul in Python bietet eine präzise Methode zum Runden von Dezimalzahlen. Es ermöglicht die Erstellung von Dezimalzahlen mit hoher Genauigkeit und bietet verschiedene Rundungsmethoden.

Um eine Dezimalzahl in Python zu erstellen, kann die Decimal-Funktion verwendet werden. Diese nimmt als Argument eine Zahl und rundet sie auf die gewünschte Anzahl von Dezimalstellen.

Für das Runden auf eine ganze Zahl kann die Methode quantize(Decimal('0'), rounding=ROUND_HALF_UP) verwendet werden. Dies rundet die Dezimalzahl auf die nächste Ganzzahl. Um auf zwei Nachkommastellen zu runden, kann die Methode quantize(Decimal('0.00'), rounding=ROUND_HALF_UP) genutzt werden.

Es ist wichtig zu beachten, dass die Fließkommadivision in Python 2 und Python 3 Unterschiede aufweist. Um einheitliche Ergebnisse zu erzielen, kann die from __future__ import division Anweisung am Anfang des Codes platziert werden. Dadurch wird die Fließkommadivision in beiden Python-Versionen verwendet.

FAQ

Welche Funktionen gibt es in Python zum Runden von Zahlen?

Python bietet verschiedene Möglichkeiten zum Runden von Zahlen. Dazu gehören die Funktionen `round`, `math.ceil`, `math.floor` und die Nutzung der `Decimal`-Klasse.

Wie verwende ich die Funktion `round` in Python?

Mit der Funktion `round` kann man Zahlen in Python auf eine bestimmte Anzahl von Dezimalstellen runden. Man kann auch eine ganze Zahl angeben, um auf die nächste ganze Zahl zu runden. Der Befehl sieht folgendermaßen aus: `round(Zahl, Dezimalstellen)`. Wenn keine Dezimalstellen angegeben werden, wird standardmäßig auf die nächste ganze Zahl gerundet.

Welche weiteren Rundungsmethoden bietet die `math`-Bibliothek in Python?

Die `math`-Bibliothek enthält die Funktionen `math.ceil` zum Aufrunden und `math.floor` zum Abrunden von Zahlen.

Wie kann ich eigene Rundungsmethoden in Python implementieren?

In Python kann man eigene Klassen implementieren und die magic method `__round__` verwenden, um eine eigene Rundungsmethode zu definieren. Hierbei kann man auch den Rundungsalgorithmus “Round half up” implementieren, der eine Zahl auf die nächste Ganzzahl aufrundet.

Wie rundet man Dezimalzahlen in Python?

Mit dem `decimal`-Modul in Python kann man Dezimalzahlen mit hoher Genauigkeit erstellen und auf eine bestimmte Anzahl von Dezimalstellen runden. Das `decimal`-Modul bietet verschiedene Rundungsmethoden, die angewendet werden können.

Quellenverweise