beliebige Zahlen auf beliebige Stellen aufrunden
-
Hallo
ich möchte beliebige Zahlen auf beliebige Stellen aufrunden können.
zB 22 aufgerundet auf 3-> 24
12 aufgerundet auf 5 -> 15 usw.Aufgerufen werden soll die Funktion so:
cout << runde (22,3);
erster Parameter: Zahl, zweiter P: 'Rundefaktor'Folgendes habe ich gebaut:
double runde (double zahl, int rundefaktor) { /* zahl -= zahl % rundefaktor; zahl += rundefaktor; //geht nicht, modulo mag kein double //Formel nach http://baseportal.de/cgi-bin/baseportal.pl?htx=/hempelr/temp/fuenfertest */ //falsche Ergebnise: //Formel nach einem gefundenem Beitrag aus dem Forum zahl *= rundefaktor; zahl += 1; ceil (zahl); zahl /= rundefaktor; return zahl; }
Kann mir jemand helfen?
-
return std::ceil(zahl / rundefaktor) * rundefaktor;
-
Ach ja, und % für doubles ist std::fmod (auch in <cmath>), aber ich finde die ceil-Version schöner.
-
danke, werds gleich mal testen.