上一章介紹了 IEEE 754 標準,本章聚焦浮點運算中的捨入問題及運算特性。許多十進制小數(如 0.3)無法用二進制精確表示,必須捨入。
IEEE 754 定義四種捨入模式:
除向偶數捨入外,其他三種有明確邊界關係。向偶數捨入能使統計誤差抵消,是 IEEE 默認模式(Round to Nearest)。
編寫 Java 程序測試 float 捨入,輸入二進制表示為 10.10011... 的數值,觀察捨入結果:

結果證實:Java 採用「向最近值捨入,中間值向偶數」策略。正負數捨入位模式相同,僅符號位不同。
IEEE 規定:運算結果 = 精確結果的捨入值。這導致:
(a + b) + c != a + (b + c)。例:1f + 1e10f - 1e10f = 0.0,但 1f + (1e10f - 1e10f) = 1.0。因此編譯器無法進行如 t = b + c; x = a + t; y = t + d; 這類浮點優化,否則可能引入誤差(如金融系統不可接受)。
本章完成浮點數專題:表示、捨入、運算特性。下一章進入匯編語言(3.x 系列),將更貼近程序實際運行。