0.1+0.2为什么不等于0.3

Posted yanze

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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。

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

以上是关于0.1+0.2为什么不等于0.3的主要内容,如果未能解决你的问题,请参考以下文章

如何解决JavaScript中0.1+0.2不等于0.3

解决JavaScript中0.1+0.2不等于0.3问题

面试官提问3:js中 0.1 + 0.2 为什么不等于0.3?怎么才能等于0.3?

前端面试 JavaScript— 0.1+0.2为什么不等于0.3?如何实现等于0.3?

0.1+0.2为什么不等于0.3

为什么计算机编程语言中:0.1+0.2不等于0.3