В универе нас учили превращать традиционное математическое выражение в польскую постфиксную запись, а потом работать с этой записью при помощи стека.
Например, 2*2/9+5-8 в польской записи будет так: 2 2 * 9 / 5 + 8 - Операнды идут в том же порядке, что и в исходном выражении.
А операции - в порядке их выполнения, причем всегда после своих операндов.
Разбор идет слева направо.
Если видим операнд - кладем его в стек.
Если видим операцию - достаем из стека два операнда, применяем к ним операцию, результат кладем в стек.
По окончании разбора в стеке будет одно число - значение выражения.
Для примера разберем польскую запись в вашем случае: 2 2 * 9 / 5 + 8 - 2 - кладем в стек. [ 2 2 - тоже кладем в стек. [ 2 2 * - достаем из стека 2 и 2, считаем 2 * 2 = 4, кладем в стек. [ 4 9 - кладем в стек [ 4 9 / - достаем из стека 9 и 4, считаем 4 / 9 = 0,4444, кладем в стек. [ 0,4444 5 - кладем в стек. [ 0,4444 5 + - достаем из стек 5 и 0,4444, считаем 0,4444 + 5 = 5,4444, кладем в стек. [ 5,4444 8 - кладем в стек. [ 5,4444 8 - - достаем из стека 8 и 5,4444, считаем 5,4444 - 8 = -2,5556, кладем в стек. [ -2,5556 Разбор окончен. Ответ: -2,5556.
А вот как на основе выражения построить польскую запись - это отдельная история