Как округлить число до числа значащих первых цифр в JavaScript? - PullRequest
0 голосов
/ 30 мая 2020

Я хотел бы округлить число до двух ведущих цифр, используя чистый JavaScript. Я хочу дать приблизительное представление о числе и его размере, но я не хочу беспокоить слушателя слишком большим количеством цифр.

Итак, 6832 должно округляться до 6800, а 8773278475 должно округляться до 8800000000, а не до 8773278400.

1 Ответ

1 голос
/ 30 мая 2020

Эта функция дает мне правильные результаты для целых чисел:

/**
 * @param {integer} num - The number to round
 * @param {integer} leadingDigits - How many significant digits at the start to keep
 * @returns {integer} rounded num
 */
function round(num, leadingDigits) {
  let precision = Math.pow(10, num.toString().length - leadingDigits);
  return Math.round(num / precision) * precision;
}

console.log(round(6832, 2));
console.log(round(8773278475, 2));
console.log(round(8, 2));

Это возвращает, как и ожидалось:

6800
8800000000
8

Но это не удается для float из-за .toString().length взлом. Если у кого-то есть лучшее решение, пожалуйста, опубликуйте его.

Хорошее решение короткое и легкое для понимания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...