Мне нужна служебная функция, которая принимает целочисленное значение (от 2 до 5 цифр в длину), которое округляется до следующего кратного 5 вместо ближайшего кратного 5. Вот что я получил:
function round5(x)
{
return (x % 5) >= 2.5 ? parseInt(x / 5) * 5 + 5 : parseInt(x / 5) * 5;
}
Когда я бегу round5(32)
, он дает мне 30
, где я хочу, 35.
Когда я бегаю round5(37)
, он дает мне 35
, где я хочу, 40.
Когда я бегу round5(132)
, он дает мне 130
, где я хочу, 135.
Когда я бегаю round5(137)
, он дает мне 135
, где я хочу, 140.
и т.д...
Как мне это сделать?
javascript
math
rounding
Амит Эрандол
источник
источник
round5(5)
дать 5 или 10?Ответы:
Это сделает всю работу:
Это просто вариант обычного округления
number
до ближайшего кратногоx
функцииMath.round(number/x)*x
, но использование.ceil
вместо.round
делает его всегда округлять вверх, а не вниз / вверх в соответствии с математическими правилами.источник
const roundToNearestMultipleOf = m => n => Math.round(n/m)*m
Использование:roundToNearestMultipleOf(5)(32)
Это округлит число до ближайшего 5. Чтобы всегда округлять до ближайшего 5, используйте
Math.ceil
. Точно так же, чтобы всегда округлять в меньшую сторону, используйтеMath.floor
вместоMath.round
. Затем вы можете вызвать эту функцию, как любую другую. Например,вернется:
источник
Как это?
источник
Я приехал сюда в поисках чего-то похожего. Если мое число равно –0, –1, –2, оно должно упасть до –0, а если –3, –4, –5, оно должно упасть до –5.
Я придумал такое решение:
И тесты:
источник
Math.round
С уважением Пол
источник
// округление с точностью
// округляем до 5 с точностью
источник
Причина использования раунда в том, что ожидаемый ввод может быть случайным числом.
Спасибо!!!
источник
может быть?
источник
int
не определено. Может быть, вы хотелиparseInt
, но в этом нет необходимости, посколькуMath.floor
возвращает число.