首頁 > 資料庫 > mysql教程 > 為什麼整數除法產生零而不是小數?

為什麼整數除法產生零而不是小數?

Mary-Kate Olsen
發布: 2025-01-20 17:31:12
原創
280 人瀏覽過

Why Does Integer Division Yield Zero Instead of a Decimal Value?

整數除法出現意外的零結果

在最近的一個程式設計專案中,以下程式碼產生了意想不到的結果:

<code>PRINT @set1
PRINT @set2

SET @weight= @set1 / @set2;
PRINT @weight</code>
登入後複製

除法結果為 0,而非預期的 0.073667712。

根本原因:整數資料型別

問題源自於@set1@set2的資料型態。 兩者都是整數,只能儲存整數。 整數除法總是截斷小數部分,從而得到整數結果。 因此,47 除以 638 的結果是 0。

要得到正確的小數結果,有兩種方法:

  1. 將變數定義為浮點數:@set1@set2 宣告為浮點數(浮點數)。這允許變數保存小數值,確保精確的小數除法。

  2. 計算期間的型別轉換:如果更改變數資料型別不可行,請在除法期間使用 CAST 運算子將整數暫時轉換為浮點數:

<code>SET @weight= CAST(@set1 AS float) / CAST(@set2 AS float);</code>
登入後複製

這兩種方法都可以保證除法運算會傳回預期的十進制值,解決意外為零結果的問題。

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板