Heim > Artikel > Backend-Entwicklung > Wie kann ich eine ganze Zahl in C effizient auf das nächste Vielfache aufrunden?
Ganzzahlen auf Vielfache aufrunden
In C ist das Aufrunden eines ganzzahligen Werts auf das nächste Vielfache einer anderen Zahl eine unkomplizierte Operation. Die folgende Funktion erledigt diese Aufgabe effizient und genau:
int roundUp(int numToRound, int multiple) { if (multiple == 0) { return numToRound; } int remainder = abs(numToRound) % multiple; if (remainder == 0) { return numToRound; } if (numToRound < 0) { return -(abs(numToRound) - remainder); } else { return numToRound + multiple - remainder; } }
Diese Funktion benötigt zwei ganzzahlige Argumente: den zu rundenden Wert (numToRound) und das Vielfache, auf das aufgerundet werden soll (multiple). Sie gibt den aufgerundeten Wert als Ganzzahl zurück.
Die Funktion prüft zunächst, ob das Vielfache Null ist. Wenn dies der Fall ist, gibt die Funktion den ursprünglichen Wert unverändert zurück.
Wenn das Vielfache nicht Null ist, berechnet die Funktion den absoluten Wert des Rests der Division von numToRound durch ein Vielfaches. Dies gibt die Differenz zwischen dem Originalwert und dem nächsten Vielfachen darunter an.
Als nächstes prüft die Funktion, ob der Originalwert negativ ist. Ist dies der Fall, wird der aufgerundete Wert entsprechend angepasst, um sicherzustellen, dass er immer noch größer oder gleich dem ursprünglichen Wert ist. Bei positiven Werten addiert die Funktion einfach den erforderlichen Betrag zum Aufrunden auf das nächste Vielfache.
Beispiele
Betrachten Sie die folgenden Beispiele:
In jedem Fall rundet die Funktion den ursprünglichen Wert korrekt auf das nächste Vielfache des angegebenen Wertes auf mehrfach.
Das obige ist der detaillierte Inhalt vonWie kann ich eine ganze Zahl in C effizient auf das nächste Vielfache aufrunden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!