整數除法與意外的零結果
範例程式碼透過除法運算產生零結果,其中預期為十進位值 (0.073667712)。 這是因為預設情況下變數被視為整數。 許多程式語言中的整數除法會截斷(丟棄)結果的任何小數部分,只留下整數部分。 因此,47 除以 638 結果為零。
解決方案:使用浮點數資料型別
要獲得正確的十進位結果,您必須使用浮點數(例如 float
或 double
,取決於程式語言)。 這可以透過兩種方式實現:
將變數宣告為浮點數: 從一開始就將 @set1
和 @set2
定義為浮點數資料型態。 具體語法取決於您的程式語言。
型別轉換: 在使用型別轉換函數(如 SQL 中的 CAST
或其他語言中的類似函數)執行除法之前,將整數變數明確轉換為浮點數。 例如:
<code class="language-sql">SET @weight = CAST(@set1 AS float) / CAST(@set2 AS float);</code>
這可確保對浮點數執行除法,保留小數部分並產生約 0.073667712 的預期結果。
以上是為什麼整數除法傳回零而不是小數值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!