如何使用Javascript将整数向上或向下舍入到最接近的10

IT技术 javascript
2021-03-04 18:43:19

使用 Javascript,我想将用户传递的数字四舍五入到最接近的 10。例如,如果传递 7,我应该返回 10,如果传递 33,我应该返回 30。

4个回答

将数字除以 10,将结果四舍五入并再次乘以 10:

var number = 33;
console.log(Math.round(number / 10) * 10);

@brainstormerdanesh,如果您不同意或想改进答案的代码/意图,请发表评论。更好的是:将您的编辑(可能会被拒绝)作为自己的答案发布。
2021-04-26 18:43:19
Math.floor如果您想防止向上舍入,则此技术也适用
2021-05-01 18:43:19
您可以使用 Math.ceil 方法进行四舍五入。
2021-05-14 18:43:19
Math.round(x / 10) * 10

iint在哪里

向下舍入到最接近的 10 倍数,即

11变成10
19变成10
21变成20

parseInt(i / 10, 10) * 10;

向上舍入到最接近的 10 倍数,即

11 变成 20
19 变成 20
21 变成 30

parseInt(i / 10, 10) + 1 * 10;  
不应该是:(parseInt(i / 10, 10) + 1) * 10; ?
2021-04-19 18:43:19
@ user3924331,你是对的。正确答案是 (parseInt(i / 10, 10) + 1) * 10; 编辑必须至少有 6 个字符,所以不能只添加这两个括号...¯_(ツ)_/¯
2021-04-19 18:43:19
最接近的 10 为值 100 添加 +10,因此它变为 110。向下最接近的 10 不会减去 -10 为 100,因此 100 保持 100。
2021-04-29 18:43:19
当 i 为 10 或更多时,这不起作用。更好的解决方案是 Math.floor(i / 10) * 10
2021-05-03 18:43:19
parseInt(i / 10, 10) * 10; 也许它会起作用
2021-05-09 18:43:19

我需要类似的东西,所以我写了一个函数。我在这里使用了十进制四舍五入的函数,因为我也用它来进行整数四舍五入,所以我也将它设置为这里的答案。在这种情况下,只需传入要四舍五入的数字,然后传入要四舍五入的数字 10。

function roundToNearest(numToRound, numToRoundTo) {
    return Math.round(numToRound / numToRoundTo) * numToRoundTo;
}
@RozzA,你说得对。我在想另一个类似问题的答案。我会简化我的功能。
2021-04-18 18:43:19
它返回相同的值,但公式不同,因为它更易于使用。例如,如果您想四舍五入到最近的.25,您可以简单地将其.25用作第二个参数。如果您要使用其他答案中的公式,则4在想要舍入为 时必须将其用作第二个参数.25,这是违反直觉的。
2021-04-21 18:43:19
你能证明吗?我刚刚在控制台中做了一些测试 & 接受的答案返回正确的答案.25作为第二个参数 - 我把它变成了一个单行函数function roundTo(x,y){return Math.round(x / y) * y}
2021-04-24 18:43:19
我喜欢你把它变成了一个函数,但这是否会给出与接受的答案不同的输出,如果不是,你为什么使用不同的公式?
2021-05-15 18:43:19