Получение числа, делимого на пять с Math.Round - PullRequest
9 голосов
/ 14 декабря 2011

У меня есть числовая переменная от 0 до 100. Это может быть что-то вроде 83.333334.

Я хочу использовать Math.Round для округления числа (например, Math.round(83.333334);). Как я могу сделать это так, чтобы результат всегда делился на пять (т.е. в наборе [0, 5, 10, 15 ... 85, 90, 95, 100])?

Ответы [ 5 ]

27 голосов
/ 14 декабря 2011

Разделите на 5, округлите, умножьте на 5.

alert(Math.round(83 / 5) * 5);

jsFiddle Demo

2 голосов
/ 17 мая 2017

Используя это Math.round(Math.floor(Math.random() * 100) / 5) * 5 Вы можете получить числа, кратные 5.

  • 100 - это диапазон результата.
2 голосов
/ 14 декабря 2011
function roundDownToMultiple(number, multiple) {
    return number - (number % multiple);
}   

roundDownToMultiple(86, 5); // 85

roundDownToMultiple(89, 5); // 85

roundDownToMultiple(96, 5); // 95
2 голосов
/ 14 декабря 2011

Используйте оператор модуля , чтобы "округлить" ваше число до кратного 5, см. Пример ниже.

 var x = Math.round(83.333334);

 x = x - (x % 5); 

Если вы хотите " округлить до нуля"(и иметь правильное значение для отрицательных чисел, а также) использовать что-то вроде этого:

 x = Math[x < 0 ? 'ceil' : 'floor'] (x/5) * 5;
1 голос
/ 14 декабря 2011

Попробуйте.

Math.round(val / 5) * 5;
...