lodash舍入到小数点后1位而不是2位

Phi*_*hil 1 javascript lodash

对我来说,lodash会产生意想不到的行为.我指定舍入到小数点后2位的地方有时会给我一个.这是lodash v3.20.1和Chrome v51.例如,5.599999将舍入到5.6而不是5.59.

var num = 5.58888
console.log('lodash num .round is ' + _.round((num), 2)); // 5.59 as expected

var num2 = 5.59999;
console.log('lodash num2 .round is ' + _.round((num2), 2)); // 5.6 not expected, why?
Run Code Online (Sandbox Code Playgroud)

这是错误还是我做错了什么?

and*_*eli 11

正如@Xufox解释的那样:

5.59是四舍五入到小数点后两位5.60

但是带有尾随零的数字不会增加任何精度,也不需要显示它,它会自动删除.如果需要强制它,可以使用toFixed()方法,该方法使用定点表示法格式化数字.

_.round((num2), 2).toFixed(2)) //lodash num2 .round is 5.60
Run Code Online (Sandbox Code Playgroud)

考虑到它返回_.round((num2),2)结果的字符串表示