在JavaScript中以20(或X)的步长舍入?

use*_*596 5 javascript rounding

我的数字从50开始到190结束.步骤是alwyas 20 - >

50,70,90,...... 190

现在我从一个文本字段中得到一个数字,必须根据此舍入.因此,如果我得到55,它应该变为70,如果我得到77,它应该是90.如果我得到90,它当然应该保持90.我知道如何做到10步骤:

// 55 --> 60
number = Math.ceil(number / 10) * 10
Run Code Online (Sandbox Code Playgroud)

如何使用20的步长舍入我得到的数字?

谢谢!

Cer*_*rus 13

如果要以x为增量进行舍入,并使用偏移:

function round(number, increment, offset) {
    return Math.ceil((number - offset) / increment ) * increment + offset;
}
round(51,  20, 10) // 70
round(70,  20, 10) // 70
round(99,  20, 10) // 110
round(100, 20, 10) // 110
Run Code Online (Sandbox Code Playgroud)

  • @vsync:这确实不是“正确”的舍入。OP 的要求意味着必须使用 `ceil`。将 `ceil` 替换为 `round` 以获得您想要的结果。 (2认同)