Heim >Datenbank >MySQL-Tutorial >Warum gibt die Ganzzahldivision in SQL 0 anstelle eines Dezimalwerts zurück?
Verstehen, warum die SQL-Ganzzahldivision Null zurückgibt
Unerwartete Nullergebnisse aus SQL-Divisionsoperationen können verwirrend sein. Dieser Artikel befasst sich mit einer Situation, in der die Division zweier numerischer Variablen (@set1 und @set2) 0 statt der erwarteten 0,073667712 ergibt.
Das Problem liegt an den Datentypen der Variablen. SQL-Variablen sind normalerweise Ganzzahlen oder Zeichenfolgen. Wenn @set1 (47) und @set2 (638) als Ganzzahlen behandelt werden, erfolgt eine Ganzzahldivision, die zu 0 führt. Um das korrekte Dezimalergebnis zu erhalten, wandeln Sie diese Variablen vor der Berechnung explizit in Gleitkommazahlen um.
Die Lösung verwendet die Funktion CAST
, um die Variablen in Gleitkommazahlen umzuwandeln:
<code class="language-sql">SET @weight = CAST(@set1 AS FLOAT) / CAST(@set2 AS FLOAT);</code>
Durch die Umwandlung von @set1 und @set2 in FLOAT
wird eine Gleitkommadivision gewährleistet, die den genauen Dezimalwert 0,073667712 ergibt. Diese einfache Änderung garantiert das korrekte mathematische Ergebnis.
Das obige ist der detaillierte Inhalt vonWarum gibt die Ganzzahldivision in SQL 0 anstelle eines Dezimalwerts zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!