JavaScript为什么浮点数会丢失精度

发布网友

我来回答

2个回答

热心网友

JS浮点计算问题

问题

用js进行浮点数计算,结果可能会“超出预期”,大部分计算结果还是对的,但是我们可不想在计算这么严谨的事情上还有意外的惊喜。比如:

以上是网上找的

我以前遇到过问题2中浏览器计算的结果 是两种,所以和浏览器也有问题

热心网友

0.1 +0.2 == 0.3

是不成立的。。。。所以这就是为什么数据库存储对于货币的最小单位都是分。

简单说,0.1和0.2的二进制浮点表示都不是精确的,所以相加后不是0.3,接近(不等于)
0.30000000000000004。

所以,比较数字时,应该有个宽容值。ES6中这个宽容值被预定义了:Number.EPSILON。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com