Обнаружение исключения NumberFormatException

Я пытаюсь преобразовать строку в двойную, но получаю исключение 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);

Вся помощь приветствуется.


person Taskin    schedule 25.02.2012    source источник
comment
Не могли бы вы поделиться трассировкой стека ошибок и попробовать распечатать значения перед преобразованием в число. Пожалуйста, поделитесь значением йо перед приведением типов. двойной doubleprim = Double.parseDouble (лет);   -  person Sabith K S    schedule 25.02.2012
comment
См. здесь пример публикации SSCCE — sscce.org.   -  person Perception    schedule 25.02.2012
comment
Этот код не является полным. Нам нужно увидеть содержимое finalstr, чтобы сказать, что не так.   -  person Dervall    schedule 25.02.2012
comment
Сообщение об исключении даст вам подробную информацию о том, что не так. Только строки, соответствующие правильному двойному значению, могут быть успешно проанализированы. Можно отправить сообщение пользователю, если возникнет исключение синтаксического анализа.   -  person Ashwinee K Jha    schedule 25.02.2012
comment
на самом деле после анализа данных с веб-страницы я пытаюсь добавить их..   -  person Taskin    schedule 25.02.2012


Ответы (3)


попробуй Double.valueOf(yo.trim()).doubleValue();

person Devan Somaia    schedule 25.02.2012
comment
какое значение йо как String? Я создал строку со значением 2502342,53 и сделал double d = Double.valueOf(num.trim()).doubleValue(); и это сработало - person Devan Somaia; 25.02.2012
comment
на самом деле я анализирую данные с веб-страницы. Я новичок в java, поэтому... значение yo = 101,00 - person Taskin; 25.02.2012

О, дерьмо, такой уродливый код! Однако, если я правильно понимаю, вы пытаетесь построить строку из всех символов в finalstr, пока не встретится интервал.

Используйте этот код:

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

С этого момента, если вы получаете исключение eNumberFormat, это происходит из-за неправильного строкового значения, а не из-за чего-либо еще.

person Boris Strandjev    schedule 25.02.2012

Вы можете попробовать это. Это сработало для меня:

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

здесь, как вы можете видеть, сумма - это текст редактирования, который я использую в Android.

person Android2390    schedule 20.07.2012