双无效。 android中的数字格式异常
Posted
技术标签:
【中文标题】双无效。 android中的数字格式异常【英文标题】:Invalid Double. Number format exception in android 【发布时间】:2014-03-07 08:18:52 【问题描述】:我在 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 "".
请注意该字段不能为空。任何建议都会有所帮助。
我见过很多问题,几乎与它相似,答案非常少,而且没有一个有助于解决我的问题。所以,请不要在没有检查其他问题的情况下将其标记为“类似问题”。
【问题讨论】:
Invalid double in converting String to Double 的可能重复项 各位,请仔细阅读这两个问题,同时将其标记为重复。这个问题的重点是使用该重复问题中给出的解决方案时出现的问题。 【参考方案1】:getText()
不返回android:hint
中的值。所以你试图将一个空字符串转换为双精度。请改用android:text
属性。
<EditText
android:id="@+id/creditlimitfield2"
android:text="0"
android:inputType="numberDecimal" />
【讨论】:
我很确定。否则 getHint() 将毫无用处。 @Shasi getText() 不会返回提示.. 它会返回在 EditText 中设置的文本 @JaiSoni 然后在 onResume 或 Button click 中获取文本,因为您调用它太快了。可能在 onCreate【参考方案2】:看起来creditlimit.getText().toString()
没有返回有效的双精度值。确保在 EditText
中输入有效的双精度。
Numberformatexception. Invalid double ""
空字符串不是有效的双精度。
我猜你在初始化之后就有了这个,确保你在按钮点击或onResume
中从edittext获取文本
double credit_limit = Double.valueOf(creditlimit.getText().toString())
如果您想要默认值,请关注 blackbelt 的帖子。
【讨论】:
@Shasi 你怎么能确定。你stacktrace建议它不是0它的“”空字符串 @Shasi 有一个按钮。在edittext中输入数字。在按钮单击或 onResume 中从 edittext 获取文本。你做到了吗??【参考方案3】:试试这个Sting limit=creditlimit.getText().toString();
double credit_limit =0;
if(limit!=null && !limit.isEmpty())
credit_limit = Double.parseDouble(limit);
【讨论】:
以上是关于双无效。 android中的数字格式异常的主要内容,如果未能解决你的问题,请参考以下文章