我正在尝试从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;
}
我是一个菜鸟,任何帮助解决这个问题都将非常感激。
答案 0 :(得分:0)
我自己测试了代码测试代码并发现以下查找NumberFormatException
的可能性:
EditText
值为空,So apply condition for EditText blank value.
EditText
值仅为点(。),So apply condition for EditText dot value.
在你的评论中,你说你正在使用这个
String text = premium.getText().toString();
if(text.equals(".")||text.equals("-.")||text.equals(""))
{
premium.setText("0");
}
所以我的意思是
premium
和amountweight
EditText使用相同的内容,然后将字符串解析为double ?? android:inputType="numberDecimal"
属性,那么EditText只接受0-9和。值。android:inputType="numberDecimal"
属性,则不需要修剪EditText值bacuse Edittext不接受空格。null
条件,因为EditText
永远不会返回null
值。我已经测试了你的代码很多,如果我按照以上几点找不到NumberFormatException
。