Heim >Datenbank >MySQL-Tutorial >Warum führt die Ganzzahldivision bei der Programmierung zu unerwarteten Ergebnissen?
Integer-Divisionen in der Programmierung können zu überraschenden Ergebnissen führen. Betrachten Sie dieses Beispiel:
<code>PRINT @set1 PRINT @set2 SET @weight= @set1 / @set2; PRINT @weight</code>
Mit set1 = 47
und set2 = 638
lautet das erwartete Ergebnis 0.073667712
. Stattdessen lautet die Ausgabe 0
. Dies liegt daran, dass viele Programmiersprachen standardmäßig eine Ganzzahldivision durchführen, wenn beide Operanden Ganzzahlen sind. Bei der Ganzzahldivision wird der Bruchteil verworfen, was zu einer Kürzung führt.
Um die erwartete Gleitkommadivision zu erreichen, verwenden Sie eine dieser Methoden:
set1
und set2
von Anfang an als Gleitkommazahlen definieren:<code>DECLARE @set1 FLOAT, @set2 FLOAT; SET @weight= @set1 / @set2;</code>
set1
und set2
während der Division in Floats:<code>SET @weight= CAST(@set1 AS FLOAT) / CAST(@set2 AS FLOAT);</code>
Beide Methoden gewährleisten eine genaue Gleitkommadivision und verhindern den Präzisionsverlust, der durch das Abschneiden ganzer Zahlen verursacht wird. Dies ergibt das korrekte Dezimalergebnis für Berechnungen, die Bruchwerte erfordern.
Das obige ist der detaillierte Inhalt vonWarum führt die Ganzzahldivision bei der Programmierung zu unerwarteten Ergebnissen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!