C ++ постфиксный анализ с десятичными точками - PullRequest
2 голосов
/ 17 ноября 2010

У меня реализован алгоритм маневрового двора (с использованием кода из Википедии, модифицированного для использования стеков / очередей stl), но теперь мне интересно, как он будет оценивать десятичные числа, полученные из деления.Приложение javascript на scriptasylum.com (не может связывать) работает просто отлично и дает ожидаемый результат:

Infix: 1/6*((1/4)/(1/2)+1/2)
Postfix: 16/14/12//12/+*
Eval: 0.16666666666666666 (1/6)

Infix: 0.5+1
Postfix: 0.51+
Eval: 1.5

Я нашел один пример оценки postfix здесь, но он не был законченt учитывает десятичные точки.

Вот мой текущий код: http://codepad.org/zDXnOELK

1 Ответ

2 голосов
/ 17 ноября 2010

Самая простая вещь (что и делает Javascript impl в силу языковой семантики) состоит в том, чтобы все числа внутренне представлять как double.

Если вы хотите сделать что-то более умное, я должен предупредить вас, что это много больше кода и много более сложных дизайнерских решений, и я рекомендую вам начать с чтения Схема числовой вышки .

...