0.1 + 0.2 !== 0.3
原因:js的数据类型为Number,采用的是双精度(64位)。而数据计算,是转换成2进制进行,转换后的长度如果超过指定的长度,则会丢弃超出的部分,从而导致精度丢失。待计算完成后,又转化为原来的长度,所以大小会有变化。
常见解决浮点数精度问题的方法:
1.toFixed();该方法只是尽可能让数据接近真实值;
2.将小数转化成整数计算;
3.转换成字符串去计算,常见插件bignumber.js/big.js/decimal.js