Сначала скобки и умножение
Выражение разбирается без eval: числа, скобки и знаки превращаются в обратную польскую запись. Процент — это постфикс «разделить на 100», поэтому 50% равно 0,5, а не «процент от прошлого числа». Запятая на кнопке вводится как десятичная точка.
Приоритет: скобки, процент, степень, умножение и деление, сложение и вычитание
Процент здесь не «накинуть к числу»
10 − 2 × 3 = 4, потому что умножение раньше сложения. (10 − 2) × 3 = 24. Степень считается справа налево: 2^3^2 = 512, не 64. Выражение разбирается без eval, в обратную польскую запись, так что посторонний текст в строке не выполнится как код.
Кнопка % делит текущее число на 100. 200 + 10% превращается в 200,1, а не в 220. Магазинная наценка живёт в процентах. Деление на ноль показывает ошибку и не затирает пример молча.
Пример
10 − 2 × 3 = 4, потому что сначала умножение. (10 − 2) × 3 = 24. 2^3^2 = 512, степень считается справа налево.
Вопросы
Почему 200 + 10% не равно 220?
Здесь % делит текущее число на 100. 10% — это 0,1, сумма 200,1. Магазинную наценку смотрите в калькуляторе процентов.
Можно делить на ноль?
Нет, появится ошибка, выражение не затирается молча.
Есть память и проценты от промежуточного результата?
Памяти нет. Для длинной формулы пользуйтесь скобками.