首先在计算机中数字的存储和运算都是通过二进制来进行操作的。
其次我们来说进制转换问题
十进制小数转二进制小数:
整数部分转整数部分: 辗转相除法
小数部分转小数部分:十进制的值 * 2
如果结果>1 则在二进制小数后补1
如果结果<1,则在二进制小数后补0
直到结果为1.0结束
举个例子:10.25
整数部分10:结果为1010
小数部分0.25:0.25*2=0.5;取0. 0.5*2 =1.0 取1 ;结果为1.0 结束
所以10.25 1010.01 差不多就是这个意思
0.1 转二进制小数则为:0.000110011001100......
后续的"1100"会一直无限循环下去;
所以计算机中就无法用二进制精确的表示0.1;
那么在计算机中
大部分的小数是不精确的
(注意:是大部分,不是全部,注意我举的例子)