Как округлить число до 1000?

91
09 февраля 2021, 10:00

Имею ползунок с шагом в 1000. Необходимо сделать функцию, которая будет округлять при клике на произвольную область ползунка. Сейчас, если я кликну на любую область, то мне выведется 1349, это число, необходимо округлить, мне будет все ровно , если это число округлится до 1000 или до 2000. Также, если это число будет 15357, оно должно округлиться до 15000 или до 16000. Как можно сделать эту функцию? Нашел такую строчку кода:

Math.pow(10, Math.ceil(Math.log10(123)));

Если я напишу в нее 87, то она округлит до 100, если 2333, то будет округлено до 10000. Хочу иметь шаг, как если бы я двигал ползунок.

Answer 1

Деление с округлением самый очевидный вариант:

let round = (a, b) => Math.round(a/b)*b 
console.log(round(123556.11, 1000)) 
console.log(round(-123556.11, 1000))

Предлагаю такой способ:

Вычитаем из числа остаток от деления на шаг округления...

let round = (a, b) => a - a % b 
console.log(round(123556.11, 1000)) 
console.log(round(-123556.11, 1000))

PS: ошибся со вторым способом, это слегка не округление - он округляет в меньшую сторону если число больше 0 и в большую если меньше, однако раз уже опубликовал то не стираю, пусть будет аналог floor в положительной или ceil в отрицательной

READ ALSO
Удалить некоторые символы в строке JSON.stringify

Удалить некоторые символы в строке JSON.stringify

Нужно вывести весь объект в виде строки, но в таком формате, чтобы не было скобок которые автоматически создаются

86
Как сделать добавление элемента в конец с эффектом спойлера?

Как сделать добавление элемента в конец с эффектом спойлера?

Я знаю, что для спойлера есть функцияslideToggle и для добавления в конец

107
Записать значения в cookie

Записать значения в cookie

Вообще не понимаю, в чём ошибка, но cookie вроде как остаётся совершенно пустым

83