什麼是捨入誤差

以有限的位數表示實數時,把無法表示的值捨入為接近的值所產生的誤差。0.1 無法以二進位的浮點數精確表示,因此反覆相加時誤差會累積,在雙精度下把0.1加10次也不會得到1.0。應避免以 = 比較實數,以及以實數計算迴圈次數。

日文名稱: 丸め誤差

「捨入誤差」出現在2領域的5道練習題中(電腦算術, 程式設計基礎(虛擬碼追蹤)等)。

這個名詞所屬的領域: 程式設計基礎(虛擬碼追蹤)

練習捨入誤差的題目

在IEEE 754的正規化數中,不記錄尾數開頭的1(隱藏位元)所產生的效果,下列何者正確?

  1. A省略開頭的1之後,就能表示負數
  2. B以相同的位元數,精度可增加1位元
  3. C省略開頭的1之後,計算結果必定準確
查看答案與解析

正確答案:B. 以相同的位元數,精度可增加1位元

以二進位正規化後,非0的數必定是「1.xxx × 2^指數」的形式,開頭恆為1。既然是已確定的1,就不需要特地記錄,可省略後把該位元用於小數部分。因此在單精度中,即使尾數只記錄23位元,精度仍有24位元。不過,在指數部分全為0的非正規化數中,開頭視為0。負數是以符號位元表示,捨入誤差也不會因此消失。

以就近捨入至偶數的方式捨入為整數時,2.5與3.5各會成為多少?

  1. A3與4
  2. B2與4
  3. C2與3
查看答案與解析

正確答案:B. 2與4

兩者都剛好在正中間,因此捨入至偶數的那一邊。2.5位於2與3的正中間,捨入至偶數的2。3.5位於3與4的正中間,捨入至偶數的4。若採用正中間一律進位的四捨五入,會得到3與4,合計為7,比原本的合計6大了1;而捨入至偶數則是 2 + 4 = 6,合計得以維持。2與3是正中間一律捨去時的結果。這種方式的優點在於可以避免捨入誤差的偏向。

解析中的「捨入誤差」

出現「捨入誤差」的題目(5題)

  1. 在IEEE 754的正規化數中,不記錄尾數開頭的1(隱藏位元)所產生的效果,下列何者正確?
  2. 以就近捨入至偶數的方式捨入為整數時,2.5與3.5各會成為多少?
  3. 將兩個幾乎相等的浮點數相減時,有效位數大幅減少的現象稱為什麼?
  4. 在小型微控制器或DSP中,經常使用定點數而非浮點數運算,其主要理由為下列何者?
  5. 實數型的值以 IEEE 754 雙精度(binary64)表示,加法的結果捨入為最接近的可表示值。執行下列程式後 c 的值為下列何者?

相關名詞

IEEE 754 非正規化數 捨入至最接近偶數 有效位數損失(Catastrophic cancellation) 資訊遺失(Absorption) 微控制器(MCU) 定點數 變數 引數 回傳值

前往名詞解釋列表