案例caret
无效。也许我的逻辑不对。当我在num1
中给出值并使用幂符号时,答案与我给出num2
值的答案相同。
case R.id.caret:
entry = "^";
if(num1 == 0) {
num1 = Integer.parseInt(txt1.getText().toString());
txt1.setText("");
}
else if (num2 !=0){
num2 = 0;
txt1.setText("");
}
break;
case R.id.equal:
if (!entry.equals(null)) {
if (num2 != 0) {
} else if (entry.equals("/")) {
txt1.setText("");
/* op1 = op1 / op2;*/
txt1.setText("Result : " + Integer.toString(num1));
}
else if (entry.equals("^")){
num2 = Integer.parseInt(txt1.getText().toString());
txt1.setText("");
}
else {
Log.e("Values", num1+"=="+num2);
Math.pow(num1, num2);
txt1.setText("Result" + Integer.toString(num1));
}
} else {
operation();
}
}
break;
}
}
}
答案 0 :(得分:1)
您没有将pow
的结果返回到任何地方。您需要将值返回给变量。这里是num1
。使它像下面。它会起作用。
else {
Log.e("Values", num1+"=="+num2);
double result=Math.pow(num1, num2);
txt1.setText("Result: " + result +"");
}
修改强>
pow
函数的参数应为double值。
以及如果R.id.equal
执行以下操作
case R.id.equal:
if (!entry.equals(null)) {
if (num2 != 0 && entry.equals("/")) {
txt1.setText("");
/* op1 = op1 / op2;*/
txt1.setText("Result : " + Integer.toString(num1));
}
else if (num2 != 0 && entry.equals("^")){
Log.e("Values", num1+"=="+num2);
double result=Math.pow(num1, num2);
txt1.setText("Result: " + result +"");
}
}
else {
operation();
}
break;