Js.BigDecimal.не вычисляются проценты в калькуляторе
Я создал js калькулятор с помощью BigDecimal.js. Но на стадии операций с процентами я завис. Я написал такой код, но он не совсем верно работает. Допустим, я введу 5-4%, а он выдаст 1, а правильно — 4,8. Как это решить? Помогите, пожалуйста.
function calculate() {
const parts = displayValue.trim().split(/\s+/);
if (parts.length === 3 && parts[2].includes('%')) {
const base = new BigDecimal(parts[0]);
const operator = parts[1];
const percent = new BigDecimal(parts[2].replace('%', '')).divide(new BigDecimal('100'));
let result;
switch (operator) {
case '+':
result = base.add(base.multiply(percent));
break;
case '-':
result = base.subtract(base.multiply(percent));
break;
case '*':
result = base.multiply(percent);
break;
case '/':
if (percent.compareTo(BigDecimal.ZERO) === 0) {
throw new Error('Деление на ноль');
}
result = base.divide(percent);
break;
default:
throw new Error('Неподдерживаемая операция');
}
displayValue = result.toString();
updateDisplay();
} else {
const postfix = infixToPostfix(displayValue);
const result = evaluatePostfix(postfix);
displayValue = result.toString();
updateDisplay();
}
}