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

为啥做出来后无论几加几都等于0.0

     private void getresult(){

     String exp=text1.getText().toString();

     if(exp==null||exp.equals("")){

     return;

     }

     if(!exp.contains(" ")){

     return;

     }

     if(clear){

     clear=false;

     return;

     }

     clear=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;

     }else if(op.equals("-")){

     result=d1-d2;

     }else if(op.equals("×")){

 result=d1*d2;

}else if(op.equals("÷")){

if(d2==0){

result=0;

}else {

result=d1/d2;

}

}

     if(s1.contains(".")&&!s2.contains(".")){

     int r=(int)result;

     text1.setText(r+"");

     }else{

     text1.setText(result+"");

     }

     }else if (!s1.equals("")&&s2.equals("")) {

text1.setText(exp);

}else if (s1.equals("")&&!s2.equals("")) {

double d2=Double.parseDouble(s2);

     if(op.equals("+")){

        result=0+d2;

     }else if(op.equals("-")){

     result=0-d2;

     }else if(op.equals("×")){

 result=0;

}else if(op.equals("÷")){

result=0;

}

     if(!s2.contains(".")){

     int r=(int)result;

     text1.setText(r+"");

     }else{

     text1.setText(result+"");

     }

}else if(!s1.equals("")&&s2.equals("")){

}

else if (s1.equals("")&&!s2.equals("")) {

double d2=Double.parseDouble(s2);

     if(op.equals("+")){

        result=0+d2;

     }else if(op.equals("-")){

     result=0-d2;

     }else if(op.equals("×")){

 result=0;

}else if(op.equals("÷")){

result=0;

}

     if(!s2.contains(".")){

     int r=(int)result;

     text1.setText(r+"");

     }else{

     text1.setText(result+"");

}

    

}else {

text1.setText("");

}

     } 

}


正在回答

2 回答

String s1=exp.substring(0,exp.indexOf(" "));//截取运算符前边的那个字符
String op=exp.substring(exp.indexOf(" ")+1,exp.indexOf(" ")+2); //截取运算符
String s2=exp.substring(exp.indexOf(" ")+3); //截取运算符后边的那个字符串

这一部分 indexOf(" ")中是有空格的,你忘记加了!

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

如果你确认你的代码都写对了,而且只有加法有问题,其和为0,那么我估计很有可能是这个事情

++

在你的xml中button的text属性中的加号 和你if判断中的加号不是一样的加号

(注意上面两个加号是不一样的,第一个是 shfit等号 一起按,第二个是搜狗拼音里的特殊符号)

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

举报

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

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

进入课程

为啥做出来后无论几加几都等于0.0

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号