首頁 >資料庫 >mysql教程 >為什麼 SQL 中的整數除法會傳 0 而不是小數值?

為什麼 SQL 中的整數除法會傳 0 而不是小數值?

Linda Hamilton
Linda Hamilton原創
2025-01-20 17:26:10638瀏覽

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

理解為什麼 SQL 整數除法回傳零

SQL 除法運算的意外零結果可能會令人困惑。本文解決了兩個數值變數(@set1 和 @set2)相除產生 0 而不是預期的 0.073667712 的情況。

問題源自於變數的資料型態。 SQL 變數通常是整數或字串。 當 @set1 (47) 和 @set2 (638) 被視為整數時,會發生整數除法,結果為 0。為了獲得正確的小數結果,請在計算之前將這些變數明確轉換為浮點數。

解法使用CAST函數將變數轉換為浮點數:

<code class="language-sql">SET @weight = CAST(@set1 AS FLOAT) / CAST(@set2 AS FLOAT);</code>

將 @set1 和 @set2 轉換為 FLOAT 確保浮點除法,產生準確的十進位值 0.073667712。這個簡單的改變保證了正確的數學結果。

以上是為什麼 SQL 中的整數除法會傳 0 而不是小數值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn