有效数字

**有效數字**（英文：**Significant Figures**, 或簡寫為 **Sig. Fig.**），其代表一個數是由若干位數字組成，其中影響其測量精度的數字被稱作**有效數字**，也稱**有效數位**。

有效數字指科學計算中用以表示一定長度浮點數精度的那些數字。一般指一個用小數形式表示的浮點數中，從第一個非零的數字算起的所有數字，因此，1.24 和 0.00124 的有效數字都有 3 位。並且在取有效數字時一般會遵循四捨五入的進位規則。例如取 1.23456789 為三位有效數字後的數值將會是 1.23，而取四位有效數字後的數值將會是 1.235。

## 辨別有效數字

簡單的規則如下：

* 所有非零數字都是有效的；
* 非零數字間的零都是有效的；
* 前綴零始終無效；
* 對於需要小數點的數，後綴零（最後一個非零數字後的零）是有效的；
* 對於不需要小數點的數，後綴零可能有效也可能無效。需要根據額外的符號或者誤差訊息決定。

所有非零數字都有效。例如 91 有兩位有效數字（9 和 1），而 123.45 有五位有效數字（1、2、3、4、5）。

兩個非零數字之間的零都有效。例如 101.1203 有七位有效數字（1、0、1、1、2、0、3）。

開頭的零始終無效。例如 0.00052 只有兩位有效數字（5 和 2）。

包含小數點的數中，結尾的零是有效的。例如 12.2300 有六位有效數字（1、2、2、3、0、0），而 0.000122300 也只有六位有效數字（1 前面的 0 都無效），120.00 則有五位。這一規則是因為小數里結尾的零可以明確精度。例如在精確到小數點後四位（0.0001）進行度量時，如果僅給出 12.23 的結果，可能會被誤解為測量時只精確到小數點後兩位，而給出 12.2300 的結果，則可以明確有小數點後四位的精度（例子中的結果有六位有效數字）。

針對不包含小數點的數，結尾的零是否是有效數字可以有不同的理解。例如僅給出 1300，我們無法得知它是精確到了最小單位（只是恰巧是 100 的倍數），還是在百位或者十位做了捨入。有很多做法可以消除歧義：

* 在最後一個有效數字上劃線。被標記的數字之後，所有結尾的零都不是有效數字。例如 $13{\overline {0}}0$ 表示有三位有效數字，精確到十位；
* 類似的也有加下劃線的做法，比如 $2{\underline {0}}00$ 表示有兩位有效數字，精確到百位；
* 如果在數字後面加上小數點，可以表示精確到個位。例如 100. 就有三位有效數字；
* 數字與計量單位結合時，可以通過選擇不同的前綴避免歧義。例如表示質量時，1300 克的精度是有歧義的，而換成 1.3 千克則無歧義，有兩位有效數字。

不過很多時候人們並不使用這些消歧義的做法，後綴的零是否屬於有效數字只能從上下文分辨。需要時也可以直接標明有效數字位數，比如可以寫「20000（兩位有效數字）」。

### 科學記數法

大多數情況下，使用科學記數法的數也可以使用上述規則判別有效數字。不過正規化形式的科學記數法沒有前綴和後綴的零，所有數字都是有效的。比如 0.00012（兩位有效數字）會被記作 $1.2\times 10^{-4}$ ，0.00122300（六位有效數字）會被記作 $1.22300\times 10^{-3}$ 。後綴零都是有效的，沒有歧義。例如 1300 在有四位有效數字時，會被記作 $1.300\times 10^{3}$ ，而如果只有兩位有效數字，則會被記作 $1.3\times 10^{3}$ 。

因此，科學記數法中，尾數也被稱作**有效數**。

## 修約與位數

有效數字的概念通常和修約一起使用。按照有效數字的位數修約比按照數字本身的位數修約通用，因為對於不同尺度的數字可以有相同的處理。例如，城市的人口數可以是精確到千位的 52000，而國家的人口數則會是精確到百萬的 52000000。前者可以有幾百的誤差，後者則可以有幾十萬的誤差，而它們都只有兩位有效數字（5 和 2）。也就是說，即便兩者在數量級上相差巨大，但兩者誤差的有效性相同（誤差與數據本身的比）。

可以用「保留 _n_ 位有效數字」來描述按照有效數字的修約，做法如下：

* 首先找出從第一個非零數字開始的 _n_ 個連續的數字，認為只有這些數字才是有效數字。
* 如果最後一個有效數字後面緊跟的數字大於 5，或者緊跟著 5 但後面還有其它非零數字，那麼將最後一個有效數字加 1。例如 1.2459 保留三位有效數字後為 1.25。
* 如果最後一個有效數字後面緊跟著數字 5，而且後面沒有其它數字或者都是 0，修約時需要採用某種特定的規則。例如 1.25 保留兩位有效數字：
  * 中值取高斯再加一（即「四捨五入」）後結果是 1.3。如果沒有特別說明，很多時候都使用這種方法。
  * 中值取最靠近的偶數（即「四捨六入五成雙」）後的結果是 1.2。
* 將小數點前的所有非有效數字替換為 0。
* 將小數點後的所有非有效數字刪除（不能替換為 0）。

## 運算

* 加法運算，當對測量值進行加減運算時，應先完成計算，然後對答案四捨五入，看精確到小數點後的位數（以位數少的為準）；

```
有效數字的減法運算法，則是為減之前先調整各數的有效位數使與減數中有效位數最小者相同再進行減法運算。
```

　
: 例：3.86 m + 2.4 m = 6.3 m

* 乘除運算，應先對測量值進行計算後，把答案四捨五入到和測量值的最小精度值相同的有效數字位數；

　
: 例：409.2 km / 11.4 L = 35.9 km/L

* 取對數 (不管是常用對數還是自然對數，即不管對數的底數為何)，按照有效數字的個數來確定小數點後的位數 (位數等於個數)；
* 取指數，按照小數點後的位數來確定有效數字的個數 (個數等於位數)；
* 科學常數和整數可以取任意位有效數字。

## 近似值

令 $x$ 是某個數量的真值， ${\tilde {x}}$ 是 $x$ 的近似值； $x$ 與 ${\tilde {x}}$ 都用十進位表示。**有效數字**就是指 $x$ 與 ${\tilde {x}}$ 的多少位數字是一致的。確切地說， ${\tilde {x}}$ 有 $x$ 的 m 位有效數字，則從 $x$ 的左端非零數字所在位起，絕對誤差 | ${\tilde {x}}-x$ | 的前 m 個十進位數位為 0，隨後一位數字取值從 0 到 5.
例如：

* 5.1 對真值 5 具有 1 位有效數字：|5.1-5|=**0**.1
* 0.51 對真值 0.5 具有 1 位，而不是 2 位有效數字：|0.51-0.5|=0.**0**1
* 4.995 對真值 5 具有 3 位有效數字:|4.995-5|=**0.00**5
* 4.994 對真值 5 具有 2 位有效數字:|4.994-5|=**0.0**06
* 1.4 對真值 2 具有 0 位有效數字：|1.4-2|=0.6

如果 $x$ 用科學記數法表示為 $x=\Box .\Box \Box \ldots \Box \times 10^{n}$ ，
則 ${\tilde {x}}$ 有 $x$ 的 m 位有效數字，如果 $|x-{\tilde {x}}|\leq 5\times 10^{n-m}$ 。
 ${\tilde {x}}$ 有 $x$ 的 m 位有效數字，則二者相對誤差不超過 $5\times 10^{-m}$ 。

## 參考文獻

## 外部連結

* Significant Figures Calculator （頁面存檔備份，存於網際網路檔案館） （英文）
* 有效數字的概念介紹 （頁面存檔備份，存於網際網路檔案館）
* 有效數字