突然发现一个问题

来源:7-1 数组扩展

Warsun

2020-03-22 20:18:46

http://img.mukewang.com/climg/5e77575e09426d8803950500.jpg

为什么结果会是这样的   我又试了一下3+0.1,结果却是3.10000000000001

写回答

1回答

好帮手慕慕子

2020-03-23

同学你好, 因为在JS中采用的IEEE 754的双精度标准,计算机内部存储数据编码的时候,0.1在计算机内部根本就不是精确的0.1,而是一个有舍入误差的0.1。当代码被编译或解释后,0.1已经被四舍五入成一个与之很接近的计算机内部数字,以至于计算还没开始,一个很小的舍入错误就已经产生了。这也就是 3 + 0.1 不等于3.1 的原因, 同理4.1也是一个有误差的数字。

对于这个原理, 同学当做一个扩展的知识点了解一下即可, 需要记住的是, 以后在编码的过程中减少使用小数,防止出现误差。

如果我的回答帮助到了你, 欢迎采纳,祝学习愉快~~~~

0

0 学习 · 10739 问题

查看课程