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?
这是错误还是我做错了什么?
答案 0 :(得分:10)
正如 @Xufox 所解释的那样:
5.59正在四舍五入到小数点后两位5.60
但是带尾随零的数字不会增加任何精度,不需要显示它,它会自动删除。 如果需要强制它,可以使用toFixed()方法,该方法使用定点表示法格式化数字。
_.round((num2), 2).toFixed(2)) //lodash num2 .round is 5.60
考虑到它返回_.round((num2),2)
结果的字符串表示形式