小数精度问题
计算机使用二进制存储,每个数字都有一个存储容量,javascript使用IEEE754标准,64位双精度。将其分为三部分符号位(1位),指数位(11位),有效数(52位)
0.1+0.2=
0.12=0.2 整数部分是0
0.22=0.4 整数部分是0
0.42=0.8 整数部分是0
0.82=1.6 整数部分是1
0.62=1.2 整数部分是1
0.22=0.4 整数部分是0
1.100110011*2·-4
0.1转化为二进制是: 0.00011001100110011001100110011001100110011001100110011010
0.2转化为二进制是:0.0011001100110011001100110011001100110011001100110011010
0.00011001100110011001100110011001100110011001100110011010 +
0.0011001100110011001100110011001100110011001100110011010 =
0.0100110011001100110011001100110011001100110011001100111
转换之后结果正好为:0.30000000000000004
0.1+0.2!=0.3