今天遇到一个问题,0.1 + 0.2 === 0.3 ,问是true还是false,虽然学了十几年的数学告诉我是相等的,但是既然这么问了,就肯定是false的,但是为啥呢?原来在JS中采用的IEEE 754的双精度标准,计算机内部存储数据的编码的时候,0.1在计算机内部根本就不是精确的0.1,而是一个有舍入误差的0.1。当代码被编译或解释后,0.1已经被四舍五入成一个与之很接近的计算机内部数字,以至于计算还没开始,一个很小的舍入错误就已经产生了,下图是在浏览器中计算 0.1+0.2 的结果,可以看到一串 0 后面多了一个4。
JS里面 0.1 + 0.2 !== 0.3 ????
最新推荐文章于 2022-03-14 20:13:26 发布