C ++: Aufrunden auf das nächste Vielfache einer Zahl
OK - Es ist mir fast peinlich, das hier zu posten (und ich werde es löschen, wenn jemand zum Schließen abstimmt), da es sich um eine grundlegende Frage handelt.
Ist dies der richtige Weg, um in C ++ auf ein Vielfaches einer Zahl aufzurunden?
Ich weiß, dass es andere Fragen gibt, aber ich bin besonders daran interessiert zu wissen, wie dies in C ++ am besten funktioniert:
int roundUp(int numToRound, int multiple)
{
if(multiple == 0)
{
return numToRound;
}
int roundDown = ( (int) (numToRound) / multiple) * multiple;
int roundUp = roundDown + multiple;
int roundCalc = roundUp;
return (roundCalc);
}
Update: Entschuldigung, ich habe die Absicht wahrscheinlich nicht klargestellt. Hier sind einige Beispiele
roundUp(7, 100)
//return 100
roundUp(117, 100)
//return 200
roundUp(477, 100)
//return 500
roundUp(1077, 100)
//return 1100
roundUp(52, 20)
//return 60
roundUp(74, 30)
//return 90
EDIT: Danke für alle Antworten. Hier ist, wofür ich mich entschieden habe:
int roundUp(int numToRound, int multiple)
{
if(multiple == 0)
{
return numToRound;
}
int remainder = numToRound % multiple;
if (remainder == 0)
{
return numToRound;
}
return numToRound + multiple - remainder;
}