Преобразовать строку в двойную - PullRequest
3 голосов
/ 23 августа 2011

Есть ли способ преобразовать строку в двойную.Вот как я это сделал.

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

Это дает NumberFormatException

Ответы [ 3 ]

3 голосов
/ 23 августа 2011

Попробуйте это

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

0 голосов
/ 21 мая 2013

У меня похожая проблема.для правильного форматирования текстового содержимого 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;
    }

это не зависит от текущей локали телефона и возвращает правильное двойное значение.

надеюсь, что это поможет;

0 голосов
/ 23 августа 2011

Вы, вероятно, начинаете со строки нулевой длины. Проверьте длину, прежде чем анализировать ее. Также не помешает поймать NumberFormatException, хотя это не должно быть проблемой, если у вас есть android:inputType="number" в макете представления.

double d = 0;
CharSequence cs = b.getText();
if(cs != null && cs.length() > 0) {
    d = Double.parseDouble(cs.toString());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...