Lodash操作以及问题

遇到的问题

_.sum 函数丢失精度的问题

一般情况下,我们都会在前端保留两位小数,这时候计算平均或者汇总就经常用到Lodash

这个时候,对于多个小数求和或平均之后的值为 3.655

但是如果用 _.sum(values,'val') ;,这个函数的结果就不一定是3.655,在我做的某个项目中,结果始终为 3.6549999***7

第二种情况,JS丢失精度:

1
2
3
4
5
6
7
8
2.55.toFixed(1) = 2.5;
2.551.toFixed(1) = 2.6;
2.56.toFixed(1) = 2.6;
2.554.toFixed(2) = 2.55;
2.555.toFixed(2) = 2.56;
2.55499999999999993.toFixed(2) = 2.55;
2.55499999999999994.toFixed(2) = 2.56;
2.556.toFixed(2) = 2.56;

也就是说,正常情况下,保留两位小时时,四舍五入是对的(大于2.55499999999999999 这个情况就是非正常了)。

本文地址: https://github.com/maxzhao-it/blog/post/36399/