JavaScript转到下一个0.1

时间:2017-10-09 12:36:59

标签: javascript

我正在尝试将数字舍入到下一个最高0.1小数点。例如,如果我有2.51,我希望将其向上舍入为2.63.9144.124.2等。< / p>

我已尝试过以下操作,但这只是最接近的0.1小数而不是下一个0.1

4.41.toFixed(1);

此轮次为4.4而不是4.5按预期

5 个答案:

答案 0 :(得分:4)

除以,然后再乘以格式。

(Math.ceil(num * 10) / 10).toFixed(1);

答案 1 :(得分:1)

(Math.ceil(num * 10) / 10).toFixed(1);

会这样做。

请注意,这仍然会在第16位有效数字上留下尾随数字,但由于浮点数通常不会被精确地截断到1位小数。 4.5因其是一个二元理性而起作用。例如,最接近的double2.62.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的偏移量并取固定值。

&#13;
&#13;
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;
&#13;
&#13;