码迷,mamicode.com
首页 > 其他好文 > 详细

0.1+0.2为什么不等于0.3

时间:2018-12-13 14:24:32      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:target   Edito   www.   lin   logs   tps   方法   style   html   

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

答案是当以前进制数的质因子为分母时,以十进制为例,它的质因子为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。

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

0.1+0.2为什么不等于0.3

标签:target   Edito   www.   lin   logs   tps   方法   style   html   

原文地址:https://www.cnblogs.com/yanze/p/10113632.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!