Heim >Backend-Entwicklung >C++ >Warum führt meine Division trotz ungleich Null-Eingaben zu Null?

Warum führt meine Division trotz ungleich Null-Eingaben zu Null?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-29 11:36:10352Durchsuche

Why Does My Division Result in Zero Despite Non-Zero Inputs?

Unerwartete Null -Division -Ergebnisse: Eine häufige Fallstrick

Teilen von Zahlen können manchmal überraschende Ergebnisse liefern, z. B. Null, auch wenn beide Eingänge ungleich Null sind. Dies beruht häufig darauf, wie Programmiersprachen während der Berechnungen Datentypen umgehen.

Betrachten Sie dieses Code -Beispiel:

<code>decimal share = (18 / 58) * 100;</code>

Hier werden 18 und 58 als Ganzzahlen behandelt. Integer Division erzeugt immer ein ganzzahliges Ergebnis; Jeder fraktionale Teil wird abgeschnitten. Daher führt 18 durch 58 in 0.

Die Lösung besteht

<code>decimal share = (18m / 58m) * 100m;</code>
Das "M" -Suffix lässt die Zahlen ausdrücklich als Dezimalstellen aus. Dies zwingt eine Dezimalaufteilung und liefert das genaue Ergebnis ungleich Null. Diese einfache Änderung verhindert den Kürzungsfehler und löst das Problem.

Das obige ist der detaillierte Inhalt vonWarum führt meine Division trotz ungleich Null-Eingaben 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