Подтвердить что ты не робот

Javascript: округлить до следующего кратного 5

Мне нужна функция утилиты, которая принимает целочисленное значение (от 2 до 5 цифр в длину), которое округляется до next, умноженное на 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.

и т.д...

Как это сделать?

4b9b3361

Ответ 1

Это сделает работу:

function round5(x)
{
    return Math.ceil(x/5)*5;
}

Это просто вариация общего округления number до ближайшего кратного функции x Math.round(number/x)*x, но использование .ceil вместо .round делает его всегда округленным, а не вниз/вверх согласно математическим правилам.

Ответ 2

Я приехал сюда, ища что-то подобное. Если мое число равно -0, -1, -2, оно должно равняться -0, а если оно равно -3, -4, -5, то оно должно превышать -5.

Я придумал это решение:

function round(x) { return x%5<3 ? (x%5===0 ? x : Math.floor(x/5)*5) : Math.ceil(x/5)*5 }

И тесты:

for (var x=40; x<51; x++) {
  console.log(x+"=>", x%5<3 ? (x%5===0 ? x : Math.floor(x/5)*5) : Math.ceil(x/5)*5)
}
// 40 => 40
// 41 => 40
// 42 => 40
// 43 => 45
// 44 => 45
// 45 => 45
// 46 => 45
// 47 => 45
// 48 => 50
// 49 => 50
// 50 => 50

Ответ 3

Как это?

function roundup5(x) { return (x%5)?x-x%5+5:x }

Ответ 4

voici 2 solutions possibles :
y= (x % 10==0) ? x : x-x%5 +5; //......... 15 => 20 ; 37 => 40 ;  41 => 45 ; 20 => 20 ; 

z= (x % 5==0) ? x : x-x%5 +5;  //......... 15 => 15 ; 37 => 40 ;  41 => 45 ; 20 => 20 ;

Отношения Пол

Ответ 5

//округлить с точностью

var round = function (value, precision) {
    return Math.round(value * Math.pow(10, precision)) / Math.pow(10, precision);
};

//округлить до 5 с точностью

var round5 = (value, precision) => {
    return round(value * 2, precision) / 2;
}

Ответ 6

const fn = _num =>{
    return Math.round(_num)+ (5 -(Math.round(_num)%5))
}

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

Спасибо!!!

Ответ 7

const roundToNearest5 = x => Math.round(x/5)*5

Это округляет число до ближайшего 5. Чтобы всегда округлять до ближайшего 5, используйте Math.ceil. Аналогично, чтобы всегда округлять, используйте Math.floor вместо Math.round. Затем вы можете вызвать эту функцию, как и любую другую. Например,

roundToNearest5(21)

вернется:

20

Ответ 8

if( x % 5 == 0 ) {
    return int( Math.floor( x / 5 ) ) * 5;
} else {
    return ( int( Math.floor( x / 5 ) ) * 5 ) + 5;
}

может быть?