更好的JavaScript舍入(非“银行家”舍入)
在JavaScript中,我希望将其减少到小数点后5位。除此之外,我不能简单地四舍五入得到.03085,我需要进一步向下看数字,并将所有数字四舍五入,这样我将得到.03086 输入:0.030854494999999 非期望值:0.0308544949999999。toFixed(5)=0.03085 所需输出:.03086请尝试以下操作更好的JavaScript舍入(非“银行家”舍入),javascript,Javascript,在JavaScript中,我希望将其减少到小数点后5位。除此之外,我不能简单地四舍五入得到.03085,我需要进一步向下看数字,并将所有数字四舍五入,这样我将得到.03086 输入:0.030854494999999 非期望值:0.0308544949999999。toFixed(5)=0.03085 所需输出:.03086请尝试以下操作 function myRounding(num, decimals) { var power10 = Math.pow(10, decimals);
function myRounding(num, decimals) {
var power10 = Math.pow(10, decimals);
return Math.ceil(num*power10) / power10;
}
myRounding(0.030854494999999999, 5); // 0.03086
我想你指的是
.toFixed(5)
由于方法的原因,没有绝对的方法可以做到这一点。总有一定百分比的误差,因为这给了我一个想法。可以使用pow和Math.round(而不是ceil)将数字四舍五入到所需的精度。然而,您的解决方案实际上更符合我们的需要。