runden auf ein Vielfaches einer Nummer in c
beim Arbeiten mit Zahlen in der Programmierung können Werte auf Abundung von Werten erforderlich sein das nächste Vielfache einer anderen Zahl. Es gibt mehrere Möglichkeiten, diese Aufgabe in C zu nähern, aber dieser Artikel konzentriert sich auf eine effiziente Methode, die die ganzzahlige Arithmetik nutzt, um eine genaue Rundung zu erreichen.
Der bereitgestellte Code -Snippet, Roundup, bietet eine einfache Lösung für positive Zahlen. Es berechnet den Rest, wenn die Eingangszahl numtoround durch das Vielfache geteilt wird, und fügt das Multiple zu numtoround hinzu, wenn der Rest ungleich Null ist. Dies stellt sicher, dass das Ergebnis das nächstgelegene Multiple ist, das größer oder gleich der Eingabe ist.
Bei negativen Zahlen enthält der ursprüngliche Code jedoch nicht das gewünschte Verhalten. Um negative Zahlen aufzunehmen, wird eine modifizierte Version von Roundup eingeführt. Diese Version berechnet den Absolutwert der Eingangszahl, bevor der Rundungsvorgang durchgeführt wird. Darüber hinaus wird eine bedingte Logik verwendet, um das Vorzeichen des Ergebnisses basierend auf dem Vorzeichen der Eingabe anzupassen. Dies stellt sicher, dass das Ergebnis immer größer oder gleich der Eingabe ist, unabhängig von seinem Zeichen.
Hier ist der aktualisierte Code für die Behandlung von positiven und negativen Zahlen:
int roundUp(int numToRound, int multiple) { if (multiple == 0) return numToRound; int remainder = abs(numToRound) % multiple; if (remainder == 0) return numToRound; if (numToRoundJetzt liefert die Roundup -Funktion ein konsistentes Verhalten sowohl für positive als auch für negative Eingaben und sorgt für eine genaue Runde auf das nächste Vielfache einer bestimmten Nummer.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3