Первое, что вы делаете, это превращаете процентную строку в число:
const percent = percentString.replace("%", "") / 100;
Это удаляет %
и конвертирует в число, а затем делит на 100, потому что таким образом вы переходите от «процентов» к числу, которое вы можете использовать, чтобы применить этот процент («процент» означает буквально «на сотню») .
Затем вы вычитаете результат умножения исходного числа на это число в процентах к исходному числу:
const number = 37.8;
const percentString = "0.01%";
const percent = percentString.replace("%", "") / 100;
const result = number - number * percent;
console.log(result);
Также работает, если строка отрицательна (и в результате вы увеличиваете число):
const number = 37.8;
const percentString = "-0.01%";
const percent = percentString.replace("%", "") / 100;
const result = number - number * percent;
console.log(result);
Примеры с использованием более очевидного расчета (100 и 10%):
function example(percentString) {
const number = 100;
const percent = percentString.replace("%", "") / 100;
const result = number - number * percent;
console.log(number, "-", percentString, "=", result);
}
example("10%");
example("-10%");