Postfix评估器Math.pow返回一个乘以int而不是int ^ int?

时间:2018-04-06 21:16:11

标签: java casting postfix

我有math.pow()的问题。在我在这个后缀计算器上运行的测试中,我看到每次将一个数字提升到另一个数字时,它会使它成倍增而不是通电。我不知道为什么会这样做,但我希望看到有人理解。

除非你需要,我不包括程序的任何其他部分,因为一切正常 - 除了num ^ num。它可能与它被铸造有关吗?

switch (token)
         {
            case "^": {
               result =  (int) ((Math.pow(left, right))); //Here is where
                                                            it returns a 
                                                            multiplied number instead
                                                            instead of a num ^ num
            }
            case "*": {
               result = left * right;
               break;
            }
            case "/": {
               result = left / right;
               break;
            }
            case "+": {
               result = left + right;
               break;
            } 
            case "-": {
               result = left - right;
               break;
            }
            default: {
               result = 0;
            }
         }

1 个答案:

答案 0 :(得分:2)

您忘记在break之后放置case "^": {,因此它始终会落到下一个*