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

Warum führt die Integer Division zu Null?

Mary-Kate Olsen
Freigeben: 2025-01-29 11:31:09
Original
875 Leute haben es durchsucht

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:

decimal share = (18 / 58) * 100;
Nach dem Login kopieren

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:

decimal share = (18m / 58m) * 100m;
Nach dem Login kopieren

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!

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