我如何解析numberformatexception错误

时间:2012-07-24 05:22:21

标签: android parsing error-handling number-formatting

我正在尝试从edittext解析double,但我不断收到数字格式异常错误。

我最初尝试过这个......

premiumvalue = Double.parseDouble(premium.getText().toString());         
amountweightvalue = Double.parseDouble(amountweight.getText().toString());

然后尝试了......无济于事。

try{
    premiumvalue = Double.parseDouble(premium.getText().toString());
} catch (final NumberFormatException e) {
    premiumvalue = 0;
}
try{
    amountweightvalue = Double.parseDouble(amountweight.getText().toString());
} catch (final NumberFormatException e) {
    premiumvalue = 0;
}

我是一个菜鸟,任何帮助解决这个问题都将非常感激。

1 个答案:

答案 0 :(得分:0)

我自己测试了代码测试代码并发现以下查找NumberFormatException的可能性:

  1. 如果EditText值为空,So apply condition for EditText blank value.
  2. 如果EditText值仅为点(。),So apply condition for EditText dot value.
  3. 在你的评论中,你说你正在使用这个

    String text = premium.getText().toString();
    
    if(text.equals(".")||text.equals("-.")||text.equals(""))
     { 
        premium.setText("0");
     }
    

    所以我的意思是

    1. 您是否对premiumamountweight EditText使用相同的内容,然后将字符串解析为double ??
    2. 以及为什么需要检查'_'的条件,因为如果为EditText设置android:inputType="numberDecimal"属性,那么EditText只接受0-9和。值。
    3. 如果您使用android:inputType="numberDecimal"属性,则不需要修剪EditText值bacuse Edittext不接受空格。
    4. 无需检查null条件,因为EditText永远不会返回null值。
    5. 我已经测试了你的代码很多,如果我按照以上几点找不到NumberFormatException