javascript - lodash 四舍五入到小数点后一位而不是 2 位

标签 javascript lodash

lodash 对我来说会产生意想不到的行为。在我指定四舍五入到小数点后两位的地方,有时会给我一个。这是 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?

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

最佳答案

正如@Xufox 所解释的那样:

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

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

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

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

关于javascript - lodash 四舍五入到小数点后一位而不是 2 位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38188692/

相关文章:

javascript - 模拟通知 API

Javascript:如何判断 <span> 是否超过 2 行?

javascript - 如何使用_.map在图表中显示数据

javascript - 将 JavaScript 函数应用于除第 i 个元素之外的所有 Array 元素

javascript - 生成更大数字的概率更小的随机数

javascript - 处理热、共享、可观察量的 "onNext"中抛出的错误的正确方法

javascript - TypeScript 类型安全省略函数

lodash - 根据不同键的值排序?

javascript - 分隔文本到嵌套 javascript 对象/JSON

javascript - 使用 lodash 进行分组