Wie kann man bei Python ab- und aufrunden?
Hallo.
Ich habe gerade einen BMI-Rechner gecodet, aber der BMI-Wert ist dann sowas wie 24.77777777777778. Dann möchte ich, dass das Ergebnis auf- bzw. abgerundet wird.
Wie mache ich das?
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
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.
Das Problem am Umwandeln in einen Int wäre höchstens das dabei nicht gerundet sondern quasi alles nach dem Komma abgeschnitten wird.
Ich hoffe, dass das nicht das, sondern print("Hello World") war.