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();
  }
}


Ответы (0 шт):