0

我正在尝试从编辑文本中解析双精度,但我不断收到数字格式异常错误。

我最初尝试过这个...

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;
}

我是一个菜鸟,任何解决此问题的帮助将不胜感激。

4

1 回答 1

0

我已经测试了您的代码自己测试了您的代码,并找到了以下可能性NumberFormatException

  1. 如果EditText值为空白,So apply condition for EditText blank value.
  2. 如果EditText值只是点(。),So apply condition for EditText dot value.

在你的评论中你说你正在使用这个

String text = premium.getText().toString();

if(text.equals(".")||text.equals("-.")||text.equals(""))
 { 
    premium.setText("0");
 }

所以我的意思是

  1. premium您是否对两者和EditText都使用相同的东西amountweight,然后将字符串解析为双精度?
  2. 以及为什么需要检查 '_' 的条件,因为如果您android:inputType="numberDecimal"为 EditText 设置属性,那么 EditText 只接受 0-9 和 . 价值。
  3. android:inputType="numberDecimal"如果您使用属性,则不需要修剪 EditText 值,因为 Edittext 不接受空格。
  4. 不需要检查null条件,因为EditText从不返回null值。

我已经对您的代码进行了很多测试,但没有找到NumberFormatException我是否遵循上述几点。

于 2012-07-24T07:24:55.207 回答