当我按“计算”键时,我试图创建一个计算考试笔记的应用程序,没有任何小数,它显示答案,但是如果有小数,它就会崩溃。
public class MainActivity extends AppCompatActivity {
TextView Result;
EditText Number1 , Number2, Number3, Number4, Number5, Number6;
Button Calculate;
float result_num;
int num1,num2,num3,num4,num5,num6;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Result = (TextView)findViewById(R.id.Result);
Number1 = (EditText)findViewById(R.id.Number1);
Number2 = (EditText)findViewById(R.id.Number2);
Number3 = (EditText)findViewById(R.id.Number3);
Number4 = (EditText)findViewById(R.id.Number4);
Number5 = (EditText)findViewById(R.id.Number5);
Number6 = (EditText)findViewById(R.id.Number6);
Calculate = (Button)findViewById(R.id.Calculate);
Calculate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
num1 = Integer.parseInt(Number1.getText().toString());
num2 = Integer.parseInt(Number2.getText().toString());
num3 = Integer.parseInt(Number3.getText().toString());
num4 = Integer.parseInt(Number4.getText().toString());
num5 = Integer.parseInt(Number5.getText().toString());
num6 = Integer.parseInt(Number6.getText().toString());
result_num = ((((num1 + num2 + num3 + num4) / 4) * 20) / 100) + ((((num5 + num6) / 2) * 80) / 100);
Result.setText(String.valueOf(result_num));
}
});
}
}发布于 2018-05-27 15:13:57
使用浮动而不是整数。整数无法用小数点解析(并对)数字进行操作。
添加:这是错误检查代码:
try {
num1 = Double.parseDouble(Number1.getText().toString());
num2 = Double.parseDouble(Number2.getText().toString());
...
}
catch (NumberFormatException ex) {
Toast.makeText(this, "Error: " + ex.getMessage(), Toast.LENGTH_LONG).show();
}发布于 2018-05-27 15:14:37
基本上,您试图在下面的代码中将Double或Float值解析为Integer类型:
Integer.parseInt(Number1.getText().toString());您的代码不适用于十进制值。但您可以将其更改为双值,如下所示:
double value1 = Double.parseDouble(Number1.getText().toString());https://stackoverflow.com/questions/50553256
复制相似问题