Javascriptを使用して整数を最も近い10に切り上げるまたは切り下げる方法


82

Javascriptを使用して、ユーザーから渡された数値を最も近い10に丸めたいと思います。たとえば、7が渡された場合は10を返し、33が渡された場合は30を返します。

回答:


161

数値を10で割り、結果を丸めて、もう一度10を掛けます。

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


12
この手法はMath.floor、上向きの丸めを防ぎたい場合は、を使用しても機能します
Alex W

11
Math.ceilメソッドを使用して切り上げることができます。
Kerem Demirer 2016


19

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;  

4
すべきではありません:(parseInt(i / 10、10)+ 1)* 10; ?
user3924331 2018

@ user3924331、その通りです。正解は(parseInt(i / 10、10)+ 1)* 10;です。編集は6文字以上である必要があるため、これら2つの括弧だけを追加することはできません...¯_(ツ)_ / ¯–
フェルナンド

最寄り10までは、それが最も近い10に110下になるようにので、100人のまま100 100 -10を減算しない、値が100のために10を追加
TitanFighter

6

似たようなものが必要だったので、関数を書きました。ここでは小数の四捨五入の関数を使用しましたが、整数の四捨五入にも使用しているので、ここでも答えとして設定します。この場合、丸めたい数値を渡してから、丸めたい数値を10で渡します。

function roundToNearest(numToRound, numToRoundTo) {
    return Math.round(numToRound / numToRoundTo) * numToRoundTo;
}

あなたがそれを関数にしたのは好きですが、これは受け入れられた答えとは異なる出力を与えますか?そうでない場合、なぜあなたは異なる式を使用したのですか?
rozzA 2016

同じ値を返しますが、使いやすくなるため、数式が異なります。たとえば、最も近いに丸めたい場合は、2番目の引数として.25使用でき.25ます。他の回答で数式を使用する場合は、4に丸めるときに2番目の引数として使用する必要があります.25。これは直感に反します。
cjbarth 2016

あなたはそれを証明できますか?コンソールでいくつかのテストを行ったところ、受け入れられた回答は.252番目の引数として使用して正しい回答を返します-ワンライナー関数にしましたfunction roundTo(x,y){return Math.round(x / y) * y}
RozzA 2016

@RozzA、その通りです。私は別の同様の質問で答えを考えていました。関数を単純化します。
cjbarth 2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.