0.1 + 0.2 == 0.3False
进制指数字的进位制度,如生活中用逢十进一的10进制,计算机使用2进制(binary)。8进制(octal),16进制(hex)也是计算机常用的。16进制中,用字母 a \sim f或 A \sim F表示10 \sim 15。
用10进制以外的进制表示数时,我们用小括号包围数字,把进制在括号的下标中注明,如 (100)_2, (a)_{16}。
一个数可以从一种进制表示转换为另一种进制表示。 进制转换不改变数的大小,只改变数的表示形式,因为其本质上与1斤=500克的单位转换相同。
可用10的幂次的加权和表示10进制数:789=7\times10^2+9\times10^1+9\times10^0。
同理,可用k的幂次的加权和表示k进制数。只要计算过程使用10进制,就能实现k进制到10进制的转换。
例如,用2的幂次的加权和表示2进制数:(100100)_2=1\times2^5+1\times2^2=32+4=36,转换为了10进制。
对10进制数,可通过不断除以10、记录余数的方式,从个位开始逐位提取其数字。
同理,对k进制数,可通过不断除以k、记录余数的方式,逐位提取其k进制数字。
例如,对2进制数。可通过不断除以2,记录余数的方式,逐位提取2进制数字。

一些进制下能用有限位小数精确表示的数,在其他进制下不能以有限位小数精确表示。 因此,计算机在表示10进制浮点数时,可能存在一定误差。
(0.1)_3是3进制下的有限小数,在10进制下是1\times3^{-1}=1/3,不能用有限位小数表示。
10进制下的有限小数0.1,在2进制下是无限循环小数(0.0\dot{0}\dot{0}\dot{1}\dot{1})_2,也不能用有限位小数表示。
因为0.1在二进制下是无限小数,而计算机只能存储有限位小数,因此Python在做相关计算时会引入误差,从而得出 0.1+0.2\neq 0.3 的结论。
0.1 + 0.2 == 0.3False