将字符串转换为双精度浮点数

3
有没有办法将字符串转换为双精度浮点数。这是我的方法。
String s = b.getText().toString();
       double d = Double.parseDouble(s);

它会抛出NumberFormatException异常。


1
getText()方法返回了什么值? - jches
1
b变量包含什么文本内容? - Gregg Rivinius
1
调试并检查传递给parseDouble的s值是多少。 - Kavitha
“s”的值由用户输入。但在此之前,异常已经发生了。 - SKB
3个回答

3
请尝试以下代码:

String s = b.getText().toString(); double d = Double.valueOf(s.trim()).doubleValue();

该代码涉及IT技术。

s的值是什么,即b.getText().toString()? - CommonMan

0
我有一个类似的问题。 为了将EditText文本内容正确格式化为double值,我使用以下代码:
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;
    }

这与当前手机语言环境无关,并返回正确的双精度值。

希望能对您有所帮助;


0

你可能是从一个长度为零的字符串开始的。在解析之前检查其长度是个好习惯。如果视图的布局中有android:inputType="number",那么捕获NumberFormatException应该不是问题。

double d = 0;
CharSequence cs = b.getText();
if(cs != null && cs.length() > 0) {
    d = Double.parseDouble(cs.toString());
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接