突然发现一个问题
来源:7-1 数组扩展
Warsun
2020-03-22 20:18:46
为什么结果会是这样的 我又试了一下3+0.1,结果却是3.10000000000001
1回答
同学你好, 因为在JS中采用的IEEE 754的双精度标准,计算机内部存储数据编码的时候,0.1在计算机内部根本就不是精确的0.1,而是一个有舍入误差的0.1。当代码被编译或解释后,0.1已经被四舍五入成一个与之很接近的计算机内部数字,以至于计算还没开始,一个很小的舍入错误就已经产生了。这也就是 3 + 0.1 不等于3.1 的原因, 同理4.1也是一个有误差的数字。
对于这个原理, 同学当做一个扩展的知识点了解一下即可, 需要记住的是, 以后在编码的过程中减少使用小数,防止出现误差。
如果我的回答帮助到了你, 欢迎采纳,祝学习愉快~~~~
相似问题