【发布时间】:2017-06-02 12:39:09
【问题描述】:
function roundUp(num, precision) {
return Math.ceil(num * precision) / precision;
}
var num = 0.07;
var precision = 100;
console.log(roundUp(num, precision));
当函数的参数是 0.07 和 100 时,“num * precision”乘法得到类似“7.000000000001”的结果,ceil 函数将其四舍五入为 8。我无缘无故得到了完全不同的结果。
我该如何解决这个问题?我有 big.js 但无法解决。
【问题讨论】:
-
会有什么结果?
-
您已将此标记为 bigdecimal,但您没有使用任何可以解决您的问题的 bigdecimal 库或数据类型。上面的每个人都在向您指出浮点精度,对于标准浮点类型(四舍五入到基数 2,而不是基数 10),您总是会遇到这种情况
标签: javascript math floating-point bigdecimal