Heim > Backend-Entwicklung > C++ > Wie können wir sicherstellen, dass bei der Ganzzahldivision immer aufgerundet wird?

Wie können wir sicherstellen, dass bei der Ganzzahldivision immer aufgerundet wird?

Susan Sarandon
Freigeben: 2025-01-20 09:11:08
Original
241 Leute haben es durchsucht

How Can We Ensure Integer Division Always Rounds Up?

Zuverlässige Methode zum Aufrunden der Ganzzahldivision

Ganzzahldivisionen runden standardmäßig gegen Null, was zu Problemen führen kann. Um sicherzustellen, dass wir immer aufrunden, brauchen wir eine bessere Lösung.

In dem im Artikel bereitgestellten Beispiel ist die Konvertierung des Operanden in eine Gleitkommazahl mit doppelter Genauigkeit und die Verwendung von Math.Ceiling() eine mögliche Problemumgehung, die jedoch als nicht standardmäßig und ineffizient angesehen wird.

Wir empfehlen die folgenden Methoden:

1. Spezifikationen klar definieren

  • Identifizieren und definieren Sie alle möglichen Eingabeszenarien.
  • Geben Sie das erwartete Verhalten in jedem Szenario an.
  • Beinhaltet Fehlerbehandlung für Nulldivision und Ganzzahlüberlauf.

2. Entwerfen Sie testbare Algorithmen

  • Teilen Sie das Problem in kleinere Schritte auf:

    • Berechnen Sie den ganzzahligen Quotienten.
    • Bestimmen Sie, ob die Division teilbar ist (kein Rest).
    • Überprüfen Sie das Vorzeichen des Operanden, um die Rundungsrichtung zu bestimmen.

3. Implementieren Sie die Lösung

Das Folgende ist eine Beispielimplementierung:

<code class="language-java">public static int DivRoundUp(int dividend, int divisor) {
    if (divisor == 0) throw new IllegalArgumentException("除数为零");
    if (divisor == -1 && dividend == Integer.MIN_VALUE) throw new ArithmeticException("整数溢出");

    int quotient = dividend / divisor;
    boolean dividedEvenly = (dividend % divisor) == 0;

    if (dividedEvenly)
        return quotient;

    boolean roundedDown = ((divisor > 0) == (dividend > 0));
    return roundedDown ? quotient + 1 : quotient;
}</code>
Nach dem Login kopieren

Dieser Algorithmus entspricht dem spezifizierten Verhalten des Aufrundens aller nicht teilbaren Divisionsergebnisse. Es bewältigt auch Überlauf- und Division-durch-Null-Fehler sehr gut. Dies ist zwar nicht die eleganteste Lösung, aber sie ist klar, überprüfbar und korrekt.

Das obige ist der detaillierte Inhalt vonWie können wir sicherstellen, dass bei der Ganzzahldivision immer aufgerundet wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage