小数点

分数与小数

xiǎo shù diǎn

小数点是小数中的圆点,用来分隔整数部分和小数部分。

Definition

小数点是像$3.14$或$0.5$这样的数字中间那个小圆点:点左边的一切是整数,点右边的一切都小于一整体。形式上,它把一个数的整数部分和小数部分在十进制记数法中分隔开来,右边每个位置分别表示逐渐变小的$10$的次幂($10^{-1}$、$10^{-2}$、$10^{-3}$等等),在科学计数法中,小数点总是放在第一个非零数字之后。更一般地,小数点标示出任意位值记数系统中基数的非负指数与负指数之间的边界;在$b$进制中,位置$n$(从小数点计数,向左为正)上的数字$d$的值为$d \cdot b^n$,其他进制使用类似的"进制点"。

Example

在$12.75$中,小数点把$12$(十二个整体)和$.75$(七十五个百分之一,即$3/4$)分开,这是"整数"与"小数部分"之间的分界线。像$2{,}450$这样的数字在最后一个零之后隐含着一个小数点($2450. = 2450.0$),逐步向左移动得到$245.0$、$24.50$、$2.450$、$0.2450$,与科学计数法$2.45 \times 10^3$相符。在$2$进制(二进制)中,$1011.01 = 1 \cdot 2^3 + 0 \cdot 2^2 + 1 \cdot 2^1 + 1 \cdot 2^0 + 0 \cdot 2^{-1} + 1 \cdot 2^{-2} = 8+2+1+0.25 = 11.25$($10$进制),二进制的"进制点"扮演着与小数点完全相同的角色。

Key Insight

把小数点向右移一位相当于乘以$10$;向左移一位相当于除以$10$,所以小数点不仅仅是一个圆点,它是整个位值系统的关键。不同国家使用不同的小数分隔符,美国使用句点,许多欧洲国家使用逗号,这看似微小的记号选择,却对软件和国际标准产生了实实在在的影响。计算机中的浮点数表示本质上是$2$进制的科学计数法:IEEE 754标准规定了一个进制点和固定数量的二进制位,这正是计算机无法在二进制中精确表示$0.1$的原因,也是每个程序员都熟悉的舍入误差的根源。