jcal2a9918f
fix substraction bug
+3 −3
2 files changed
- M Calculator.java +1 −1
- M Parser.java +2 −2
| @@ -1,6 +1,6 @@ | |||
| 1 | 1 | public class Calculator { | |
| 2 | 2 | public static void main(String[] args) { | |
| 3 | − | String expr = "(36 * 3 + 9 * 7) * (84 / 12) * 5"; | |
| 3 | + | String expr = "(84 / 4 * 3 - 9) * 2 + 1 / 5"; // 108.2 | |
| 4 | 4 | Parser p = new Parser(expr); | |
| 5 | 5 | String postfix = p.toPostFix(); | |
| 6 | 6 | System.out.println(p.evalExpr(postfix)); | |
| @@ -1,5 +1,4 @@ | |||
| 1 | 1 | /* Todo | |
| 2 | − | * - Fix Substraction errors | |
| 3 | 2 | * - Add support for trigonometric functions | |
| 4 | 3 | * - Remove all edge cases | |
| 5 | 4 | */ | |
| @@ -17,6 +16,7 @@ public class Parser { | |||
| 17 | 16 | ||
| 18 | 17 | public static boolean isOperand(char c) { | |
| 19 | 18 | switch (c) { | |
| 19 | + | case '0': | |
| 20 | 20 | case '1': | |
| 21 | 21 | case '2': | |
| 22 | 22 | case '3': | |
| @@ -115,7 +115,7 @@ public class Parser { | |||
| 115 | 115 | case '+': | |
| 116 | 116 | return op2 + op1; | |
| 117 | 117 | case '-': | |
| 118 | − | return op2 - op1; | |
| 118 | + | return op1 - op2; | |
| 119 | 119 | case '*': | |
| 120 | 120 | return op2 * op1; | |
| 121 | 121 | case '/': | |