此博客是本人从学生时代开始做笔记所用, 部分是工作所遇问题,做填坑笔记,部分闲来查阅资料,加上自己的理解所总结的学习笔记, 常忙得不可开交,若漏了资料来源,望通知~ 前路漫漫,写点东西告诉自己正在一点点进步,而不要迷失于繁忙。

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。

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

posted @ 2018-12-13 13:59  炎泽  阅读(1775)  评论(0)    收藏  举报