我有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;
}
}
答案 0 :(得分:2)
您忘记在break
之后放置case "^": {
,因此它始终会落到下一个*
。