程式設計中的整數除法可能會導致令人驚訝的結果。考慮這個例子:
<code>PRINT @set1 PRINT @set2 SET @weight= @set1 / @set2; PRINT @weight</code>
使用set1 = 47
和set2 = 638
,預期結果是0.073667712
。 相反,輸出是0
。發生這種情況是因為,預設情況下,許多程式語言在兩個運算元都是整數時執行整數除法。 整數除法會丟棄小數部分,導致截斷。
要實現預期的浮點除法,請使用下列方法之一:
set1
和 set2
定義為浮點數:<code>DECLARE @set1 FLOAT, @set2 FLOAT; SET @weight= @set1 / @set2;</code>
set1
和 set2
轉換為浮點數:<code>SET @weight= CAST(@set1 AS FLOAT) / CAST(@set2 AS FLOAT);</code>
兩種方法都可以保證浮點除法的精確性,並防止整數截斷造成的精確度損失。 對於需要小數值的計算,這會產生正確的小數結果。
以上是為什麼整數除法會在程式設計中產生意想不到的結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!