Heim >Backend-Entwicklung >C++ >Warum führt meine Division trotz ungleich Null-Eingaben zu Null?
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!