我使用一个舍入到所需小数位数的函数:
function modRound(value, precision)
{
var precision_number = Math.pow(10, precision);
return Math.round(value * precision_number) / precision_number;
}
它的工作正确,但不是0.565。 modRound(0.575, 2)
给出0.58(正确),但modRound(0.565, 2)
给出0.56;我期待0.57:
function modRound(value, precision) {
var precision_number = Math.pow(10, precision);
return Math.round(value * precision_number) / precision_number;
}
function test(num) {
console.log(num, "=>", modRound(num, 2));
}
test(0.575);
test(0.565);
为什么会发生这种情况以及该怎么做?
答案 0 :(得分:-2)
您可以添加一个非常小的数字:
function modRound(value, precision)
{
var precision_number = Math.pow(10, precision);
return Math.round((value+0.00000000001) * precision_number) / precision_number;
}
alert(modRound(0.565, 2))
这是JSFiddle