无效的双倍。 android中的数字格式异常

时间:2014-03-07 08:18:53

标签: android numberformatexception

我在xml中有这个。

<EditText
                android:id="@+id/creditlimitfield2"
                android:hint="0"
                android:inputType="numberDecimal" />

因此,edittext的默认值为0。

在代码中,我有这个

creditlimit = (EditText) findViewById(R.id.creditlimitfield2);
double credit_limit = Double.valueOf(creditlimit.getText().toString());

或者,我尝试过:

double credit_limit = Double.parseDouble(creditlimit.getText().toString());

double credit_limit = new Double(creditlimit.getText().toString());

当我运行程序时,它会给出错误

Numberformatexception. Invalid double "".

请注意,该字段不为空。任何建议都会有所帮助。


我见过许多问题,几乎与它相似,但答案却很少,而且没有一个能帮我解决问题。因此,请不要将其标记为“类似问题”而不检查其他问题。

3 个答案:

答案 0 :(得分:1)

getText()未返回android:hint内的值。所以你试图将空字符串转换为double。请改用android:text属性。

<EditText
    android:id="@+id/creditlimitfield2"
    android:text="0"
    android:inputType="numberDecimal" />

答案 1 :(得分:0)

看起来creditlimit.getText().toString()不会返回有效的double值。确保在EditText中输入有效的双精度。

Numberformatexception. Invalid double ""

空字符串不是有效的双精度数。

另外我猜你刚刚初始化后确保你在按钮点击或onResume

中获取edittext的文本
double credit_limit = Double.valueOf(creditlimit.getText().toString())

如果你想要默认值,请点击blackbelt的帖子。

答案 2 :(得分:0)

试试这个 Sting limit=creditlimit.getText().toString(); double credit_limit =0; if(limit!=null && !limit.isEmpty()){ credit_limit = Double.parseDouble(limit); }