0

我正在尝试将字符串转换为双精度但得到 NumberFormatException。

这是我的代码:

String x = "";
// String ary[]=new String[10];
while (finalstr.charAt(stpr) != ' ') {
    // System.out.print(finalstr.charAt(stpr));
    Character c = new Character(finalstr.charAt(stpr));

    String s = c.toString(c);
    ary[i] = s;
    x = x + ary[i];
    i++;

    stpr++;
    // first++;
}
// System.out.print(x);
String yo = x;
// System.out.print(yo); //it prints well
// double d = Double.valueOf(yo.trim()).doubleValue();
double doubleprim = Double.parseDouble(yo);
System.out.print(doubleprim);

所有帮助表示赞赏。

4

3 回答 3

0

你可以试试这个。它对我有用:

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

在这里你可以看到数量是我在android中使用的一个edittext。

于 2012-07-20T18:13:48.473 回答
0

尝试Double.valueOf(yo.trim()).doubleValue();

于 2012-02-25T12:21:09.930 回答
0

哦,这么丑陋的代码!但是,如果我理解正确,您将尝试构建所有字符的字符串,finalstr直到遇到间隔。

使用此代码:

String [] splits = finalstr.split(" ");
double doubleprim = Double.parseDouble(splits[0]);

从那时起,如果您收到 eNumberFormat 异常,那是由于错误的字符串值,而不是其他原因。

于 2012-02-25T12:21:27.763 回答