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

lodash rounding to 1 decimal place instead of 2

本文关键字:2位 1位 舍入 小数点 Lodash      更新时间:2023-09-26

lodash对我来说会产生意想不到的行为。这里我指定四舍五入到小数点后2位有时会得到1。这是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?

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

, @Xufox 解释说:

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

但是后面有零的数字不会增加任何精度,没有必要显示它,它会被自动删除。如果你需要强制它,你可以使用toFixed()方法,该方法使用定点表示法格式化数字。

_.round(num2, 2).toFixed(2) // lodash num2 .round is 5.60

考虑到它返回_的结果的字符串表示形式。轮(num2, 2)