Zahlen runden auf volle Hundert
-
Zeig doch ersteinmal was du schon hast.
MfG Max
-
Hallo,
für positive Zahlen fällt mir spontan folgendes ein:int func(int i) { int factor = (i / 100); if ( (i % 100) != 0 ) ++factor; return factor * 100; }
Man beachte aber, dass ich im Moment totmüde bin und diese Lösung deshalb wahrscheinlich totaler käse ist.
-
schau mal in die FAQ - da gibts einen Beitrag zum runden von Zahlen - da wird zwar auch nachkommastellen gerundet - aber die Idee dahinter ist ja die gleiche.
-
Das if kannst Du Dir sparen, indem Du einfach 99 draufaddierst.
-
Jester schrieb:
Das if kannst Du Dir sparen, indem Du einfach 99 draufaddierst.
Sehr gut. Addition war also die Operation die ich krampfhaft gesucht habe
-
Wie wärs hiermit?
int Zahl = 355; Zahl += ((Zahl % 100) - 100) * -1; std::cout << Zahl; std::cin.get();
Ausgabe: 400
-
Brian2 schrieb:
Wie wärs hiermit?
int Zahl = 355; Zahl += ((Zahl % 100) - 100) * -1; std::cout << Zahl; std::cin.get();
Das liefert für ganze Hunderter (z.B. 100) aber immer hundert zuviel (z.B. 200).
-
Was spricht gegen die Lösung die ganz oben gepostet wurde, bis auf die ganzen Zuweisungen.
int Zahl =2342; int rundeZahl = ((Zahl + 50) / 100) * 100;
-
Mirauder_Mo schrieb:
Was spricht gegen die Lösung die ganz oben gepostet wurde, bis auf die ganzen Zuweisungen.
int Zahl =2342; int rundeZahl = ((Zahl + 50) / 100) * 100;
Dagegen spricht, daß er aufrunden möchte... wenn Du statt der 50 aber ne 99 hinschreibst, dann hast Du die Lösung auf die Hume und ich geeinigt haben.
-
Ah, jetzt hab ich das verstanden.
Ich hab mir gedacht, da kommt doch nur bullshit raus wenn man anstelle des if 99 drauf addiert, aber du hattest natürlich gedacht das vorher zu tun.