我試圖將一個數字舍入到下一個最高點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