我试图将一个数字舍入到下一个最高点0.1
小数点。例如,如果我有2.51
我希望它被调高至2.6
,3.91
到4
,4.12
到4.2
等JavaScript循环到下一个0.1
我试过不过以下这只是四舍五入到最接近最近0.1
小数,而不是下一个0.1
4.41.toFixed(1);
这四舍五入到4.4
不4.5
如预期
我试图将一个数字舍入到下一个最高点0.1
小数点。例如,如果我有2.51
我希望它被调高至2.6
,3.91
到4
,4.12
到4.2
等JavaScript循环到下一个0.1
我试过不过以下这只是四舍五入到最接近最近0.1
小数,而不是下一个0.1
4.41.toFixed(1);
这四舍五入到4.4
不4.5
如预期
鸿沟,小区,然后乘以和格式。
(Math.ceil(num * 10)/10).toFixed(1);
只需将该数字乘以10,使用Math.ceil()
然后通过10
Math.ceil(num * 10)/10
(Math.ceil(num * 10)/10).toFixed(1);
划分它会做到这一点。
请注意,这仍然会在第16位有效数字中留下尾数,尽管由于浮点数一般不能精确地截断为小数点后1位。 4.5
因为它是一个二元的理性。例如,最接近的double
到2.6
是2.600000000000000088817841970012523233890533447265625
。
Math.ceil(4.41*10)/10 // 4.5
更一般地,
Math.ceil(x*10)/10
您可以添加的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
您需要使用'Math.round' –
可能的复制[你怎么四舍五入到1位小数在Javascript?](https://stackoverflow.com/questions/7342957 /你怎么做到小数点后一位在JavaScript中) – Liam
乘以数字,然后使用.ceil(),然后除以10. – Dellirium