**有效数字**（英文：**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 的倍数），还是在百位或者十位做了舍入。有很多做法可以消除歧义：

* 在最后一个有效数字上划线。被标记的数字之后，所有结尾的零都不是有效数字。例如 {\displaystyle 13{\overline {0}}0} 表示有三位有效数字，精确到十位；
* 类似的也有加下划线的做法，比如 {\displaystyle 2{\underline {0}}00} 表示有两位有效数字，精确到百位；
* 如果在数字后面加上小数点，可以表示精确到个位。例如 100. 就有三位有效数字；
* 数字与计量单位结合时，可以通过选择不同的前缀避免歧义。例如表示质量时，1300克的精度是有歧义的，而换成1.3千克则无歧义，有两位有效数字。

不过很多时候人们并不使用这些消歧义的做法，后缀的零是否属于有效数字只能从上下文分辨。需要时也可以直接标明有效数字位数，比如可以写「20000（两位有效数字）」。

### 科学记数法

大多数情况下，使用科学记数法的数也可以使用上述规则判别有效数字。不过正规化形式的科学记数法没有前缀和后缀的零，所有数字都是有效的。比如 0.00012（两位有效数字）会被记作 {\displaystyle 1.2\times 10^{-4}}，0.00122300（六位有效数字）会被记作 {\displaystyle 1.22300\times 10^{-3}}。后缀零都是有效的，没有歧义。例如 1300 在有四位有效数字时，会被记作 {\displaystyle 1.300\times 10^{3}}，而如果只有两位有效数字，则会被记作 {\displaystyle 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
* 取对数(不管是常用对数还是自然对数，即不管對數的底數為何)，按照有效数字的个数来确定小数点后的位数(位数等于个数)；

* 取指数，按照小数点后的位数来确定有效数字的个数(个数等于位数)；

* 科学常数和整数可以取任意位有效数字。

近似值
---

令{\displaystyle x}是某个数量的真值，{\displaystyle {\tilde {x}}}是{\displaystyle x}的近似值；{\displaystyle x}与{\displaystyle {\tilde {x}}}都用十进制表示。**有效数字**就是指{\displaystyle x}与{\displaystyle {\tilde {x}}}的多少位数字是一致的。确切地说，{\displaystyle {\tilde {x}}}有{\displaystyle x}的m位有效数字，则从{\displaystyle x}的左端非零数字所在位起，绝对误差|{\displaystyle {\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

如果{\displaystyle x}用科学记数法表示为
{\displaystyle x=\Box .\Box \Box \ldots \Box \times 10^{n}}，
则{\displaystyle {\tilde {x}}}有{\displaystyle x}的m位有效数字，如果{\displaystyle |x-{\tilde {x}}|\leq 5\times 10^{n-m}}。
{\displaystyle {\tilde {x}}}有{\displaystyle x}的m位有效数字，则二者相对误差不超过{\displaystyle 5\times 10^{-m}}。

参考文献
----

1. ↑ . 國家教育研究院雙語詞彙、學術名詞暨辭書資訊網.  [2018-06-27]. （原始内容存档于2021-03-04）.
2. ↑   (PDF). 論乘除運算中有效數字之處理規則.
3. ↑  Engelbrecht, Nancy; et al.  (PDF). Washington, D.C.: U.S. Department of Education. 1990.  引文格式1维护：显式使用等标签 (link)
4. ↑  Numerical Mathematics and Computing, by Cheney and Kincaid （页面存档备份，存于）.
5. ↑  Paul W. Zitzewitz,etc.(2005),"PHYSICS principles and Problems",McGraw-Hill Education Glencoe.

外部連結
----

* Significant Figures Calculator （页面存档备份，存于） （英文）
* 有效数字的概念介绍 （页面存档备份，存于）
* 有效数字