Javascript 使用接近0.05的自定义舍入数

Javascript 使用接近0.05的自定义舍入数,javascript,Javascript,我想对下面的数字进行四舍五入,我在6个月前在stack overflow中提出了这个问题,我得到了解决方案,效果很好 12.910 - 12.90 12.920 - 12.90 12.930 - 12.90 12.940 - 12.90 12.941 - 12.95 12.950 - 12.95 12.960 - 12.95 12.970 - 12.95 12.980 - 12.95 12.990 - 12.95 12.991 - 13.00 13.000 - 13.00 但它不适用于以

我想对下面的数字进行四舍五入,我在6个月前在stack overflow中提出了这个问题,我得到了解决方案,效果很好

12.910 - 12.90
12.920 - 12.90
12.930 - 12.90
12.940 - 12.90
12.941 - 12.95
12.950 - 12.95

12.960 - 12.95
12.970 - 12.95
12.980 - 12.95
12.990 - 12.95
12.991 - 13.00 
13.000 - 13.00 
但它不适用于以下数字

Input 32.34 - expected 32.30 - but got 32.35
Input 33.09 - expected 33.05 - but got 33.10
而其他数字如
33.34、23.34
则给出了正确的输出
33.30和23.30

下面是函数

function customRound(num) {
     intermediateResult = Math.ceil(num*100)/100;
     return Math.floor(intermediateResult*20)/20;
}

我想在执行
num*100
之后,您需要四舍五入到最接近的整数。现在使用
Math.ceil.

尝试使用。我希望这有助于:

更新:您还必须使用
toFixed
parseFloat
来解决乘法中的精度错误

函数customRound(num){
intermediateResult=Math.round(parseFloat((num*100).toFixed(2))/100;
返回数学楼层(中间结果*20)/20;
}
console.log(customRound(32.34));
控制台日志(customRound(33.09));
console.log(customRound(67.445));

控制台日志(customRound(69.195))67.445应该是67.45,但得到了67.40。。。69.195应该是69.20,但得到了69。15@Graciewilliams抱歉,这是因为乘法的精度错误。我更新了我的答案。57.244应该是57.25。。。但是它的57.20和58.344应该是58.35,但是它的58.30高于0.x40的任何东西我的第二次更新,或者