Python Nachkommastelle auslesen?
hallo ich schreibe gerade ein programm bei dem ich auf eine zahl bzw abrunden muss (x.5 auf oder x.4 ab) so wie es halt üblich ist. wie kann ich die nachkommt stelle auslesen und dann entscheiden ob ich auf oder abrunden muss?
2 Antworten
Dafür gibt es die Round funktion.
Manuell kannst du das so machen:
Kommazahl ansprechen:
zahl = 6.5
zahlhintermkomma = str(zahl).split(".")[1]
Und dann noch runden:
if zahlhintermkomma < 5:
zahl = int(zahl)
if zahlhintermkomma > 5:
zahl = int(zahl) + 1
Was ist daran unverständlich? Eine Zahl modulo 1 ergibt der ersten Nachkommastellen. Du teilst im Integer-Kontext durch 1 und erhältst den Rest - also alles nach dem Komma.
int(x + 0.5)
Dann musst du dir keine Nachkommastellen angucken.
Aber es geht auch
round(x)
Und
round(x,2)
rundet auf 2 Nachkommastellen
rundet auf und ab. so wie es muss. Oder hast du ein Gegenbeispiel?
Sorry. Du hast recht. Wenn genau .5 nach dem Komma ist, rundet es symmetrisch, d.h. zur nächsten geraden Zahl. Also 0.5 wird ab-, aber 1.5 aufgerundet.
https://docs.python.org/3/library/functions.html#round
Dann also doch int(x+0.5)
Geht auch so:
So ist es kürzer, einfacher zu verstehen und viel performanter. Außerdem funktioniert es immer und hängt nicht davon ab, wie die Zahl als string repräsentiert wird (in anderer localization vielleicht mit "," als Separator oder in e-Notation bei großen Zahlen).