2009-11-05 2 views
48

Используя Javascript, я хотел бы округлить число, пройденное пользователем до ближайшего 10. Например, если 7 передано, я должен вернуть 10, если 33 передается, я должен вернуться 30.Как округлить целое число вверх или вниз до ближайшего 10, используя Javascript

+3

не Jquery нужен, как вы можете видеть в ответах, вы могли бы, возможно, изменить свой вопрос/теги ... –

ответ

99

разделите число на 10, вокруг результата и умножьте его на 10 раз:

var number = 33; 
alert(Math.round(number/10) * 10); 
+0

Спасибо вам за разъяснение! – Abs

+7

Этот метод также работает с использованием 'Math.floor', если вы хотите предотвратить округление вверх –

+6

Вы можете использовать метод Math.ceil для округления. –

5

мне нужно было что-то подобное, так что я написал функцию. Я использовал функцию для десятичного округления here, так как я также использую ее для округления целых чисел, я также задаю ее как ответ. В этом случае просто введите число, которое вы хотите округлить, а затем 10, номер, который вы хотите округлить до.

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

Мне нравится, что вы включили его в функцию, но это дает отличный результат от принятого ответа, а если нет, почему вы использовали другую формулу? – RozzA

+0

Он возвращает то же значение, но формула отличается, потому что она упрощает ее использование. Например, если вы хотите округлить до ближайшего '.25', вы можете просто использовать' .25' в качестве второго аргумента. Если бы вы использовали формулы в других ответах, вам нужно было бы использовать '4' в качестве второго аргумента, если вы хотите округлить до' .25', что противоречит интуиции. – cjbarth

+0

вы можете это доказать? я только что провел некоторое тестирование в консоли, и принятый ответ возвращает правильный ответ, используя '.25' в качестве второго аргумента - я превратил его в одну функцию liner function roundTo (x, y) {return Math.round (x/y) * y} ' – RozzA

6

Адрес: i ИНН.

округлить до ближайшего числа, кратного 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; 
+1

Я искал круглый вариант для нескольких, и ваш код абсолютно блестящий, я не могу достаточно возвысить. Благодаря! – andreszs

+0

Andrew: Большое спасибо, я ценю ваш комментарий :-) – CMP

Смежные вопросы