Java 十进制输入崩溃
因此,我是Android studio的初学者,我试图制作一个简单的应用程序,计算你总共和平均喝多少水。这个想法是有人在一周的时间里每天输入他们喝了多少水。当我点击“calculate it”时,计算出一天的总数和平均值 我的问题是,每当我输入一个小数点为2,3的数字时,应用程序就会崩溃。我确实找到了一个解决方案,我需要做一个验证(if,else)函数,但我不太确定如何选择一个函数中的所有日期Java 十进制输入崩溃,java,android,crash,decimal,Java,Android,Crash,Decimal,因此,我是Android studio的初学者,我试图制作一个简单的应用程序,计算你总共和平均喝多少水。这个想法是有人在一周的时间里每天输入他们喝了多少水。当我点击“calculate it”时,计算出一天的总数和平均值 我的问题是,每当我输入一个小数点为2,3的数字时,应用程序就会崩溃。我确实找到了一个解决方案,我需要做一个验证(if,else)函数,但我不太确定如何选择一个函数中的所有日期 public class MainActivity extends AppCompatActivity
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button addBtn = (Button) findViewById(R.id.calculateBtn);
addBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
EditText editTextMon = (EditText) findViewById(R.id.editTextMon);
EditText editTextTue = (EditText) findViewById(R.id.editTextTue);
EditText editTextWed = (EditText) findViewById(R.id.editTextWed);
EditText editTextThu = (EditText) findViewById(R.id.editTextThu);
EditText editTextFri = (EditText) findViewById(R.id.editTextFri);
EditText editTextSat = (EditText) findViewById(R.id.editTextSat);
EditText editTextSun = (EditText) findViewById(R.id.editTextSun);
TextView resultTextView = (TextView) findViewById(R.id.resultTextView);
TextView errorView = (TextView) findViewById(R.id.errorView);
TextView averageTextView = (TextView) findViewById(R.id.averageTextView);
EditText allDays = (EditText) findViewById(R.id.editTextMon);
int mon = Integer.parseInt(editTextMon.getText().toString());
int tue = Integer.parseInt(editTextTue.getText().toString());
int wed = Integer.parseInt(editTextWed.getText().toString());
int thu = Integer.parseInt(editTextThu.getText().toString());
int fri = Integer.parseInt(editTextFri.getText().toString());
int sat = Integer.parseInt(editTextSat.getText().toString());
int sun = Integer.parseInt(editTextSun.getText().toString());
if ( ! (allDays.equals("") || allDays.equals("-")) ) {
int result = mon + tue + wed + thu + fri + sat + sun;
resultTextView.setText("Total: " + result + " L");
int average = result / 7;
averageTextView.setText("Avg: " + average + " L");
} else {
errorView.setText("Invalid Input");
}
}
});
}
}
您正在将所有值存储在
Integer
数据类型中。
使用
float
存储它们,并使用float.parseFloat(yourEditText.getText().toString())解析它们代码>在这种情况下,您可以使用Float x=Float.parseFloat(y)代码>你能不能也附上日志。猜测一下:试着用一个带点的数字作为十进制分隔符而不是逗号,可能没有有效的转换。整数仅表示随后除以的值和的平均值。