0.1+0.2!== 0.3 原因

在计算机进行数字计算时会先将十进制转化为二进制进行计算,由于二进制表示的有限数字不能超过 52 位在 JavaScript 里是不能精确存储的,计算机进行了四舍五入这时造成了数字误差导致计算结果不为0.3;

总结:我们可以看到,当十进制小数的二进制表示的有限数字超过 52 位时,在 JavaScript 里是不能精确存储的,这时候就存在舍入误差(Round-off error)。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 怎么解决那? 方法一 最简单的就是先把0.1和0.2换成别的数字(因为在js中只有这两个数相加有bug,例如:1....
    皇甫贝阅读 1,938评论 0 2
  • 为了解除心中的疑惑,在网上看了很多文章,才弄懂其中的原理,在这里记录下来。 对于计算机而言,两个数字在相加时是以二...
    荷尔蒙榨汁机阅读 24,577评论 4 12
  • 首先我们先来看一个例子 这里0.1 + 0.2 != 0.3 这个就是我们要解决的问题了。 原理 要弄清这个问题的...
    加个鸡腿霸阅读 294评论 0 1
  • 原来,0.1 + 0.2 === 0.30000000000000004。是不是很奇葩?其实对于浮点数的四则运算,...
    小小的白菜阅读 1,564评论 1 0
  • 在正常的数学逻辑思维中,0.1+0.2=0.3这个逻辑是正确的,但是在JavaScript中0.1+0.2!==0...
    我性本傲阅读 2,158评论 0 0

友情链接更多精彩内容