js基础-浮点精度

发布时间 2023-05-04 10:53:25作者: 南韵

0.1 + 0.2 !== 0.3

原因:js的数据类型为Number,采用的是双精度(64位)。而数据计算,是转换成2进制进行,转换后的长度如果超过指定的长度,则会丢弃超出的部分,从而导致精度丢失。待计算完成后,又转化为原来的长度,所以大小会有变化。

常见解决浮点数精度问题的方法:

1.toFixed();该方法只是尽可能让数据接近真实值;

2.将小数转化成整数计算;

3.转换成字符串去计算,常见插件bignumber.js/big.js/decimal.js