Wie kann man bei Python ab- und aufrunden?

4 Antworten

Klingt ja so als wärst du bald fertig, es gibt round() und im math package afaik noch funktionen für floor (immer abrunden).

Findest du im Zweifel auch nach fucking zwei Sekunden im Internet suchen, aber Glückwunsch zu deinem vermutlich ersten Programm!

Natürlich kann man auch wie in Thomaskllr Antwort einfach zu einem Int casten wenn man immer abrunden möchte, das ist mir gerade entfallen aber glaube um 5 Uhr kann das mal passieren

Woher ich das weiß:Berufserfahrung – Software Entwickler / Devops

Thomaskllr  05.04.2021, 04:50
Glückwunsch zu deinem vermutlich ersten Programm!

Ich hoffe, dass das nicht das, sondern print("Hello World") war.

Ich weiß nicht wie die genaue Syntax in Python lautet, aber in BASIC wäre es folgendes :

Zahl = INT(Zahl * 10 ^ Stellen + 0.5) / 10 ^ Stellen

Wobei das 10 ^ bedeutet 10 hoch, also 10 potenziert mit Stellen.

Lässt sich mit Sicherheit genauso in Python umsetzen, nur eben angepasste Syntax.

Die Variable Zahl beinhaltet die Zahl die gerundet werden soll.

Die Variable Stellen beinhaltet die Anzahl an Stellen auf die gerundet werden soll. Dabei sind Werte für Stellen von Null (rundet auf die volle Zahl) bis hin zu den maximal möglichen Nachkommastellen minus 1 sinnvoll.

EDIT :

Wenn die originale Zahl erhalten bleiben soll, dann natürlich stattdessen sowas wie :

W = INT(Zahl * 10 ^ Stellen + 0.5) / 10 ^ Stellen

Am besten mit einem Formatstring ab Python 3.6

wert = 1.5645464
print(f'{wert:.2f}')

Das rundet jetzt fest auf 2 Nachkommastellen

In einen Int umwandeln.

zahl = 7.895
print(int(Zahl)) 

Und wie Waldmensch70 bereits sagt: Schau dir ein gescheites Tutorial an, anstatt hier zu jeder Kleinigkeit eine extra Frage zu stellen.


BeamerBen  05.04.2021, 04:51

Das Problem am Umwandeln in einen Int wäre höchstens das dabei nicht gerundet sondern quasi alles nach dem Komma abgeschnitten wird.