为了账号安全,请及时绑定邮箱和手机立即绑定

按了等号没反应怎么回事?

private void getResult(){
	  String exp=et_input.getText().toString();
	if(exp==null||exp.equals("")){	
		return;
	}
	
	if(!exp.contains("")){

		return;
	}
	if(clear_flag=true){
		clear_flag=false;
		return;
	}
	clear_flag=true;
	double result=0;
	String s1=exp.substring(0,exp.indexOf(""));//截取运算符前的字符串
	String op=exp.substring(exp.indexOf("")+1,exp.indexOf("")+2);//截取运算符
	String s2=exp.substring(exp.indexOf("")+3);//截取运算符后的字符串
	if(!s1.equals("")&&!s2.equals("")){
		double d1=Double.parseDouble(s1);//强制类型转换
		double d2=Double.parseDouble(s2);
		if(op.equals("+")){
			result=d1+d2;			
		}
        if(op.equals("-")){
			result=d1-d2;
		}
        if(op.equals("×")){
	       result=d1*d2;
          }
         if(op.equals("÷")){
	       if(d2==0){
	    	   result=0;
	       }else {
			result=d1/d2;
		}
       }
         if(!s1.contains(".")&&!s2.contains(".")&&!op.equals("÷")){
        	 int r=(int) result;
        	 et_input.setText(r+"");
        	 
         }else{
        	 et_input.setText(result+"");
         }
	}
	if(!s1.equals("")&&s2.equals("")){
		 et_input.setText(exp);
		 System.out.println("3");
	}
	if(s1.equals("")&&!s2.equals("")){
		double d2=Double.parseDouble(s2);
		System.out.println("4");
		if(op.equals("+")){
			result=0+d2;
		}
        if(op.equals("-")){
			result=0-d2;
		}
        if(op.equals("×")){
	       result=0;
          }
         if(op.equals("÷")){
	       result=0;
       }
         if(!s2.contains(".")){
        	 int r=(int) result;
        	 et_input.setText(r+"");
         }else{
        	 et_input.setText(result+"");
         }
	}
	else{
		et_input.setText("");
	}
}


正在回答

4 回答

为什么等号永远都等于零

0 回复 有任何疑惑可以回复我~

“”和“ ”不一样的,看仔细了,引号里面要按下空格。

0 回复 有任何疑惑可以回复我~

case R.id.btn_minus:

case R.id.btn_multiply:

case R.id.btn_plus:

case R.id.btn_divide:

if(clear_flag){

clear_flag=false;

str="";

et_input.setText("");

}//当点击按钮时候,显示屏为空

et_input.setText(str+""+((Button)v).getText()+"");

break;

这里的意思是当你输入符号时会在显示:一个空格及“”,符号,一个空格

在下面的等号方法中

int spase=exp.indexOf("");

String s1=exp.substring(0,spase);//截取空格前的字符串及你输入的第一个数字

String op=exp.substring(spase+1,spase+2);//截取运算符

String s2=exp.substring(spase+3);//截取第二个空格的数字

大概就是这样!!!


1 回复 有任何疑惑可以回复我~

我也一样没反应,你现在解决了吗


0 回复 有任何疑惑可以回复我~
#1

SUSU子杰 提问者

是因为输入的按钮数字跟符号不在对应的位置,s1、s2、op获得的值不对,按了等号运算不了!!
2015-03-25 回复 有任何疑惑可以回复我~
#2

Yangleo 回复 SUSU子杰 提问者

要怎么改
2015-04-06 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Android攻城狮的第一门课(入门篇)
  • 参与学习       312584    人
  • 解答问题       4633    个

想快速掌握Android应用开发基础,选择学习这门课程就对了。

进入课程

按了等号没反应怎么回事?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信