当前位置: 代码迷 >> Android >> Math pow 函数不起作用
  详细解决方案

Math pow 函数不起作用

热度:58   发布时间:2023-08-04 10:08:58.0

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

您不会将pow的结果返回到任何地方。 您需要将值返回给变量。 这里到num1 让它像下面一样。 它会起作用。

          else  {
                    Log.e("Values", num1+"=="+num2);
                    double result=Math.pow(num1, num2);
                    txt1.setText("Result: " + result +"");
                }

编辑:

pow函数的参数应该是双pow值。

如果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;
  相关解决方案