Я создаю калькулятор на Java и изо всех сил пытаюсь придумать способ обработки отрицательных чисел, пока я могу разобрать выражение, например это:
((4-3)*(4/2))*2
становится:
[4.0, -3.0, +, 4.0, 2.0, /, *, 2.0, *]
Однако я не знаю, как бы я поступил с выражениями, содержащими отрицания, например:
2*(-2-3)
Пока что у меня это есть, поэтому, когда встречается отрицательное значение, оно умножает число перед ним на -1 и добавляет + в конец списка, поэтому выражение становится таким:
[2.0, -2.0, -3.0, +, +, *]
Это вызывает много ошибок в моей программе, может ли кто-нибудь помочь с лучшим методом борьбы с негативами.
Большое спасибо за любую помощь
2*(-2-3)
станет2*(0-2-3)
. - person sp00m   schedule 06.01.2014