Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как посчитать процент

Короткий ответ

Чтобы узнать, сколько процентов одно число составляет от другого, разделите их и умножьте на 100:

const done = 45;
const total = 60;
 
console.log((done / total) * 100);

Результат:

75

Процент от числа

Чтобы взять 15% от суммы, умножьте сумму на 15 и разделите на 100:

const price = 80;
const discount = (price * 15) / 100;
 
console.log(discount, price - discount);

Результат:

12 68

Изменение в процентах

Изменение — это разница, делённая на старое значение:

const oldPrice = 40;
const newPrice = 50;
const change = ((newPrice - oldPrice) / oldPrice) * 100;
 
console.log(change + '%');

Результат:

25%

Форматирование

Intl.NumberFormat со style: 'percent' принимает долю от 0 до 1 и сам добавляет знак:

const format = new Intl.NumberFormat('en-US', { style: 'percent', maximumFractionDigits: 1 });
 
console.log(format.format(2 / 3));

Результат:

66.7%

Частая ошибка

Деление на ноль не выбрасывает ошибку, а даёт NaN или Infinity. Проверяйте делитель заранее:

const percent = (part, total) => (total === 0 ? 0 : (part / total) * 100);
 
console.log((0 / 0) * 100);
console.log(percent(0, 0));

Результат:

NaN
0

Функции из этого ответа

  • Math.round — Округляет число до ближайшего целого.
  • Number.prototype.toFixed — Форматирует число с заданным количеством знаков после запятой.
  • Intl.NumberFormat — Форматирует числа, валюты, проценты и единицы измерения по правилам языка.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.