Eine Möglichkeit, sicherzustellen, dass bei der Ganzzahldivision immer aufgerundet wird
Ziel dieses Artikels ist es, einen zuverlässigen Weg zu finden, um sicherzustellen, dass bei der Ganzzahldivision immer aufgerundet wird.
Überprüfung der ursprünglichen Methode
Der ursprüngliche Vorschlag bestand darin, die Ganzzahl in eine Gleitkommazahl mit doppelter Genauigkeit umzuwandeln und das Ergebnis mithilfe der Funktion Math.Ceiling()
aufzurunden. Obwohl dieser Ansatz zu funktionieren scheint, können Typkonvertierungen zu unnötiger Komplexität und potenziellen Präzisionsproblemen führen.
Eine robuste Lösung
Um dieses Problem zu lösen, wird unten eine umfassendere und robustere Lösung bereitgestellt:
<code class="language-java">public static int DivRoundUp(int dividend, int divisor) { if (divisor == 0 || (dividend == Integer.MIN_VALUE && divisor == -1)) throw new ArithmeticException("Invalid input"); // 显式处理异常情况 int roundedTowardsZeroQuotient = dividend / divisor; boolean dividedEvenly = (dividend % divisor) == 0; if (dividedEvenly) return roundedTowardsZeroQuotient; boolean wasRoundedDown = ((divisor > 0) == (dividend > 0)); if (wasRoundedDown) return roundedTowardsZeroQuotient + 1; else return roundedTowardsZeroQuotient; }</code>
Erklärung
Diese Funktion behandelt alle möglichen Situationen sorgfältig, einschließlich:
Wichtige Überlegungen
Indem wir diese Prinzipien befolgen, können wir robusten und zuverlässigen Aufrundungscode für die Ganzzahldivision entwickeln.
Das obige ist der detaillierte Inhalt vonWie kann sichergestellt werden, dass die Ganzzahldivision immer aufgerundet wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!