Heim >Backend-Entwicklung >C++ >Warum führt die Integer Division zu Null?

Warum führt die Integer Division zu Null?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-29 11:31:09902Durchsuche

Why Does Integer Division Result in Zero?

Unerwartete Null in der Teilung: Eine häufige Falle

unerwartete Nullen aus Divisionsberechnungen sind eine häufige Quelle für Programmierfehler. Untersuchen wir ein gemeinsames Szenario, um zu verstehen, warum dies geschieht.

Das Problem:

Betrachten Sie diesen Code:

<code class="language-c#">decimal share = (18 / 58) * 100;</code>

Das Ergebnis dieser Abteilung ist überraschend Null.

Die Lösung:

Die Grundursache ist eine ganzzahlige Abteilung. Bei der Trennung von Ganzzahlen wird das Ergebnis abgeschnitten (der fraktionelle Teil wird verworfen), was zu einem Gesamtnummernergebnis führt. In diesem Fall ist 18 durch 58 unter 1 1 beträgt, so dass es auf 0 abgeschnitten ist.

Um dies zu korrigieren, müssen wir explizit Dezimalwerte verwenden:

<code class="language-c#">decimal share = (18m / 58m) * 100m;</code>

Das m -Suffix bezeichnet jede Zahl als Dezimalwörtler, wodurch die schwimmende Punkte und ein präzises Ergebnis ungleich Null gewährleistet wird. Dadurch wird die Berechnung gezwungen, die Floating-Punkt-Arithmetik zu verwenden, was die genaue fraktionale Antwort liefert.

Das obige ist der detaillierte Inhalt vonWarum führt die Integer Division zu Null?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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