为什么0.1+0.2不等于0.3

0.1+0.2为什么不等于0.3

首先,对于不同的进制数值系统,分母为多少时能除干净?

答案是当以前进制数的质因子为分母时,以十进制为例,它的质因子为2、5,因此1/2、1/4、1/5、1/8和 1/10都能被除干净,相反,1/3、1/6 和 1/结果都是循环小数。

那么二进制时,质因子为2,所以1/2、1/4 和 1/8都可以被精确表示,1/5 或者 1/10就变成了循环小数,那么0.2与0.1成了循环小数。

而计算机天生只能存储整数,它只能用某种方法来表示小数,例如使用浮点数,可见:https://www.cnblogs.com/yanze/p/10112673.html ,用这种方式,碰到除不净的情况,只能对数据进行截断处理,精度丧失。

因此0.1+0.2!=0.3。

备注:可以认为:除不净即无法被精确表达。

猜你喜欢

转载自blog.csdn.net/abcdef12030/article/details/92621743