2013-05-08 9 views
0

я получаю NumberFormatException: недопустимый двойной «111000000» в этой строке кода:Invalid дважды в преобразовании строки в Double

double SalePotential = Double.valueOf(EtPotential.getText().toString()); 

в начале я использовал NumberFormat, отформатировать двойное значение для разделения номера и вставить его в EditText, но когда я пытаюсь получить значение EditText он бросает мне исключение:

NumberFormat f = NumberFormat.getInstance(); 
EtPotential.setText(String.valueOf(f.format(PTData.SalePotential))); 

я также пытался DecimalFormat или Double.parseDouble без успеха. любая помощь была бы оценена! :

DecimalFormat f = new DecimalFormat("###.###", DecimalFormatSymbols.getInstance()); 
double SalePotential = Double.parseDouble(EtPotential.getText().toString()); 
+0

Какой выход из этого: 'String.valueOf (f.format (PTData.SalePotential))'? –

+0

"111 000 000" фактический вход? – ShinTakezou

+0

EtPotential.getText(). ToString(), каков вход в edittext? – Raghunandan

ответ

5

Удалить "" перед разбором

double SalePotential = Double.parseDouble(EtPotential.getText().toString().replace(",", "")); 

Update: При правильной реализации

double salePotential = 0; // Variable name should start with small letter 
try { 
    salePotential = Double.parseDouble(EtPotential.getText().toString().replace(",", "")); 
} catch (NumberFormatException e) { 
    // EditText EtPotential does not contain a valid double 
} 

Happy кодирования :)

+0

it Workssssss, Tyyyyy! –

+0

Congs man .. вы сделали это. –

+1

спасибо, что ваша логика работает для меня –

1

Используйте заменить функцию для замены всех вхождений,

 String s= EtPotential.getText().toString(); 
    s = s.replace(",", ""); 
    try 
    { 
     double SalePotential = Double.parseDouble(s); 
    }catch(NumberFormatException e) 
    { 
     e.printStackTrace(); 
    } 
+0

+1 для правильного ответа ty;) –

Смежные вопросы