Как посчитать процент
Короткий ответ
Чтобы узнать, сколько процентов одно число составляет от другого, разделите их и умножьте на 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 — Форматирует числа, валюты, проценты и единицы измерения по правилам языка.