3

有没有办法将字符串转换为双精度。我就是这样做的。

String s = b.getText().toString();
       double d = Double.parseDouble(s);

它给出了 NumberFormatException

4

3 回答 3

3

尝试这个

字符串 s = b.getText().toString(); 双 d = Double.valueOf(s.trim()).doubleValue();

于 2011-08-22T21:16:40.253 回答
0

我有一个类似的问题。为了将 EditText 文本内容正确格式化为双倍值,我使用以下代码:

try {
        String eAm = etAmount.getText().toString();
        DecimalFormat dF = new DecimalFormat("0.00");
        Number num = dF.parse(eAm);
        mPayContext.amount = num.doubleValue();
    } catch (Exception e) {
        mPayContext.amount = 0.0d;
    }

这与当前电话区域设置无关,并返回正确的双精度值。

希望对您有所帮助;

于 2013-05-21T13:10:09.827 回答
0

您可能从零长度字符串开始。在解析之前检查长度。捕获 NumberFormatException 也没有什么坏处,尽管如果您android:inputType="number"在视图的布局中,这应该不是问题。

double d = 0;
CharSequence cs = b.getText();
if(cs != null && cs.length() > 0) {
    d = Double.parseDouble(cs.toString());
}
于 2011-08-22T22:13:01.840 回答