参考答案
这个问题偶尔会问到,主要考查面试者对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—