我正在尝试将数字舍入到下一个最高0.1
小数点。例如,如果我有2.51
,我希望将其向上舍入为2.6
,3.91
为4
,4.12
为4.2
等。< / p>
我已尝试过以下操作,但这只是最接近的0.1
小数而不是下一个0.1
4.41.toFixed(1);
此轮次为4.4
而不是4.5
按预期
答案 0 :(得分:4)
除以,然后再乘以格式。
(Math.ceil(num * 10) / 10).toFixed(1);
答案 1 :(得分:1)
(Math.ceil(num * 10) / 10).toFixed(1);
会这样做。
请注意,这仍然会在第16位有效数字上留下尾随数字,但由于浮点数通常不会被精确地截断到1位小数。 4.5
因其是一个二元理性而起作用。例如,最接近的double
到2.6
是2.600000000000000088817841970012523233890533447265625
。
答案 2 :(得分:0)
只需将数字乘以10,使用Math.ceil()
然后将其除以10.
Math.ceil(num * 10) / 10
答案 3 :(得分:0)
Math.ceil(4.41*10)/10 // 4.5
更一般地说,
Math.ceil(x*10)/10
答案 4 :(得分:0)
您可以添加0.049999999
的偏移量并取固定值。
function round(v) {
return (v + 0.049999999).toFixed(1);
}
console.log(round(2.51)); // 2.6
console.log(round(3.91)); // 4.0
console.log(round(4.12)); // 4.2
console.log(round(1)); // 4.2
&#13;