计算机无法计算,计算器不能执行计算功能,运算结果始终为0

部分代码:

public void onClick(View v) {

// TODO Auto-generated method stub

String str=t1.getText().toString();

switch(v.getId()){

case R.id.button16:

case R.id.button13:

case R.id.button14:

case R.id.button15:

case R.id.button9:

case R.id.button10:

case R.id.button11:

case R.id.button5:

case R.id.button6:

case R.id.button7:

case R.id.button17:

if(clear_flag){

clear_flag=false;

str="";

t1.setText("");

}

t1.setText(str+((Button)v).getText());

break;

case R.id.button12:

case R.id.button8:

case R.id.button4:

case R.id.button3:

if(clear_flag){

clear_flag=false;

str="";

t1.setText("");

}

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

break;

case R.id.button2:

if(clear_flag){

clear_flag=false;

str="";

t1.setText("");

}

else if(str!=null&&!str.equals("")){

t1.setText(str.substring(0,str.length()-1));

}

break;

case R.id.button1:

clear_flag=false;

str="";

t1.setText(" ");

break;

case R.id.button18:

getResult();

break;

}

}

private void getResult(){

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

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

return;

}

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

return;

}

if(clear_flag){

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;

}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(".")&&!op.equals('/')){

int r=(int)result;

t1.setText(r+"");

}else{

t1.setText(result+"");}

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

t1.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;

t1.setText(r+" ");

}else{

t1.setText(result+" ");

}

}else{

t1.setText("");

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值