Heim >Datenbank >MySQL-Tutorial >Warum gibt die Ganzzahldivision in SQL 0 anstelle eines Dezimalwerts zurück?

Warum gibt die Ganzzahldivision in SQL 0 anstelle eines Dezimalwerts zurück?

Linda Hamilton
Linda HamiltonOriginal
2025-01-20 17:26:10638Durchsuche

Why Does Integer Division in SQL Return 0 Instead of a Decimal Value?

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!

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