Hallo,
gibt es eine Möglichkeit, eine Fließkommazahl immer aufzurunden? Wenn ich korrekt runden würde, müsste ich ja 0,67 auf 0,7 aufrunden und 0,42 auf 0,4 abrunden. Ich möchte aber, dass immer aufgerundet wird, sprich 0,67 -> 0,7 und 0,42 -> 0,5.
Ich habe mir schon mal die Funktion round() angesehen, aber das ist afaik nicht das, was ich suche.
Achja, und gibt es eine Möglichkeit, immer auf ganze Zahlen zu runden (0,5 -> 1; 2,67778 -> 3)?
Gruß
DHK
Aufrunden?
Hi du, ich hab wahrscheinlich nicht die eleganteste Lösung für dich parat.
Aber ich hab mir an der Stelle als ich es brauchte eben so geholfen.
Aber mich würde an der Stelle auch interessieren wie man das am besten macht. (bzw am elegantesten)
Gruß Zap
EDIT: Habe gerade gesehen das ich dir damit bei der ersten Problemstellung nicht helfen kann, sorry.
Aber ich hab mir an der Stelle als ich es brauchte eben so geholfen.
Code: Alles auswählen
>>> x = 2.1
>>> round(x+0.49)
3.0
>>> x = 2.0
>>> round(x+0.49)
2.0
>>> x = 2.9
>>> round(x+0.49)
3.0
Gruß Zap
EDIT: Habe gerade gesehen das ich dir damit bei der ersten Problemstellung nicht helfen kann, sorry.
Code: Alles auswählen
>>> x = 0.42
>>> x
0.41999999999999998
>>> round(x+0.5)
1.0
Code: Alles auswählen
>>> int(x+0.5)
0
>>> #aber
...
>>> int(round(x+0.5))
1
Code: Alles auswählen
>>> from decimal import Decimal, ROUND_UP
>>> Decimal('0.42').quantize(Decimal('1.'), rounding=ROUND_UP)
Decimal("1")
Gruss,
Christian
- Rebecca
- User
- Beiträge: 1662
- Registriert: Freitag 3. Februar 2006, 12:28
- Wohnort: DN, Heimat: HB
- Kontaktdaten:
Code: Alles auswählen
>>> import math
>>> math.ceil(3.2)
4.0
>>> math.ceil(-3.7)
-3.0
Ah, ja - das ist natürlich noch eleganter. Danke.
-
- User
- Beiträge: 773
- Registriert: Mittwoch 5. November 2003, 18:06
- Wohnort: Schweiz
- Kontaktdaten:
Hi
So kannst du beliebig Aufrunden:
Auch auf 0.5 oder 0.2 genau Runden geht auch, einfach schrittweite ändern
Gruss
So kannst du beliebig Aufrunden:
Code: Alles auswählen
def aufrunder(zahl, schritt_weite):
return math.ceil(zahl/schritt_weite)*schritt_weite
print aufrunder(0.67, 0.1)
print aufrunder(0.42, 0.1)
Gruss
Hallo,
Für Zahlen größer 0 geht:
Für Zahlen kleiner 0 geht:
Für Zahlen größer 0 geht:
Code: Alles auswählen
zahl = 3.23
print int(zahl) + 1
Code: Alles auswählen
zahl = -3.23
print int(zahl)
Gruß, Harry
Nicht wirklich:
Code: Alles auswählen
In [7]: zahl = 42.0
In [8]: print int(zahl) + 1
43
Oh
Da habe ich meine Lösung nicht wirklich durchdacht. Sorry!
So müßte es nun gehen:
Da habe ich meine Lösung nicht wirklich durchdacht. Sorry!
So müßte es nun gehen:
Code: Alles auswählen
def aufrunden(zahl):
result = int(zahl)
if result != zahl and zahl > 0:
result += 1
return result
print aufrunden(3.23)
Gruß, Harry