数学功能不起作用

时间:2015-10-19 05:56:20

标签: java android

案例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;
      }
   }
}

1 个答案:

答案 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;