【问题标题】:Invalid Double. Number format exception in android双无效。 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 "".

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


我见过很多问题,几乎与它相似,答案非常少,而且没有一个有助于解决我的问题。所以,请不要在没有检查其他问题的情况下将其标记为“类似问题”。

【问题讨论】:

  • 各位,请仔细阅读这两个问题,同时将其标记为重复。这个问题的重点是使用该重复问题中给出的解决方案时出现的问题。

标签: android numberformatexception


【解决方案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); }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-18
    • 2014-02-11
    相关资源
    最近更新 更多