0.1+0.2=0.3正确吗

参考答案

这个问题偶尔会问到,主要考查面试者对JavaScript的数值的理解程度。

在正常的数学逻辑思维中,0.1+0.2=0.3,是正确的。

在JavaScript中,0.1+0.2 !== 0.3,是不正确的。

原因:

  • 在JavaScript中,采用IEEE 754的双精度标准,计算机内部存储数据的编码的时候,0.1在计算机内部不是精确的0.1,而是一个有舍入误差的0.1。
  • 当代码被编译或解释后,0.1已经被四舍五入成一个与之很接近的计算机内部数字,以至于计算还没开始,一个很小的舍入错误就已经产生了。

注意:

不是所有浮点数都有舍入误差。二进制能精确地表示位数有限且分母是2的倍数的小数,比如0.5,0.5在计算机内部就没有舍入误差。所以0.5 + 0.5 === 1,有时两个近似值进行计算的时候,得到的值是在JS的近似范围内的,于是就可以得到正确答案。

 

以上,是Java面试题【0.1+0.2=0.3正确吗】的参考答案。

输出,是最好的学习方法

欢迎在评论区留下你的问题、笔记或知识点补充~

—end—

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧