Seite 1 von 1
Auf hunderter, tausender, ... runden
Verfasst: Donnerstag 3. März 2005, 17:34
von mawe
Hi!
Gibts einen einfachen Weg so etwas zu machen:
Ich hab mir gerade eine Funktion geschrieben, die das kann, aber die is über 10 Zeilen lang (und ich schäme mich dafür

). Muss doch kürzer gehen. Oder gibts da schon etwas eingebautes?
Gruß, mawe
Re: Auf hunderter, tausender, ... runden
Verfasst: Donnerstag 3. März 2005, 17:41
von jens
Kann man das nicht irgendwie mit %d machen??? Also auf zwei Nachkommastellen runden geht mit %.2d
Verfasst: Donnerstag 3. März 2005, 17:45
von mawe
Hi jens!
Das mit den Nachkommastellen kenn ich, man kann auch mit "%03i" Nullen vor die Zahl stellen, aber dahinter..., und gerundet... ?
Gruß, mawe
Verfasst: Donnerstag 3. März 2005, 18:27
von Leonidas
Wie kommst du auf 10 Zeilen?
Code: Alles auswählen
def round_it(num):
l = len(str(num)) - 1
rounded = round(num / 10.0 ** l)
rounded = int(rounded * 10 ** l)
return rounded
Könnte man sicher noch kürzer fassen (eine Zeile!), wäre aber nicht mehr lesbar
Edit: Okay, ich konnte es nicht lassen noch eine absolut unlesbere Einzeilerlösung zu machen:
Code: Alles auswählen
round_it = lambda num: int(round(num / 10.0 ** (len(str(num)) - 1)) * 10 ** (len(str(num)) - 1))
Kinder, nicht nachmachen oder versuchen es zu verstehen! Habe ich aus dem Vierzeiler per Copy and Paste erstellt.
Verfasst: Donnerstag 3. März 2005, 19:51
von mawe
Hi Leonidas!
Wie ich auf 10 Zeilen komme? Nachdem ich Deine Lösung gesehen habe, möchte ich darüber lieber den Mantel des Schweigens legen
Vielen Dank!
Gruß, mawe