如果我使用editText作为Double,我会收到错误

时间:2017-02-28 07:19:44

标签: string format double decimal

如果我将editText字段用作Double值,则会出错:

public void Format1(View view) {
    DecimalFormat num = new DecimalFormat("000.00");

    EditText editText = (EditText)findViewById(R.id.editText_075_1);
    TextView textView = (TextView)findViewById(R.id.textView_075_1);

    //textView.setText(num.format(1.6789));// works

    textView.setText(num.format(Double.parseDouble(editText.toString()))); // error

2 个答案:

答案 0 :(得分:0)

这意味着,editText不包含正确的双精度!因此,在将编辑文本设置为textView之前检查编辑文本是否为正确的数字格式会更好!

boolean checkDouble(String val) {
    try {
        Double.parseDouble(val);
        return true;
    } catch (NumberFormatException e) {
        return false;
    }
}

并像

一样使用它
if(checkDouble(editText.toString())){
    textView.setText(num.format(Double.parseDouble(val)));
}else{
    textView.setText("Please enter a valid double!");
}

希望这有帮助!

答案 1 :(得分:0)

问题已解决: 我们使用Stream而不使用String vergot(getText):

editText.getText().toString()) // String : correct

editText.getText()。toString())// Stream