0.5 - 0.4 === 0.1 ?
答案是不相等。 记下来探讨计算机对小数的存储精度的问题。
小数如何转换成二进制?(由于计算机是以二进制存储的)
例子:0.125如何转换成二进制(乘2取整,顺序排列)
0.125 * 2 = 0.25 // 取整为 0
0.25 * 2 = 0.5 //取整为 0
0.5 * 2 = 1.0 //取整为 1
//0.125 转换成二进制 001
接下来探讨 0.2 转换成二进制
0.2 * 2 = 0.4 //取整 0
0.4 * 2 = 0.8 //取整 0
0.8 * 2 = 1.6 //取整 1
0.6 * 2 = 1.2 //取整 1
0.2 *2 = 0.4 //取整0
.......
//可以看出十进制的0.2本身是不循环的小数 但是转换成二进制时 无限循环
//所以这是导致小数运算时出现精度不准确的根本原因