Региональная независимая строка для удвоения - PullRequest
3 голосов
/ 20 сентября 2011

В моем приложении есть текстовые поля для редактирования, в которых пользователь вводит десятичное значение, которое приложение использует для выполнения вычислений.

Некоторые пользователи в других локалях сообщают о проблемах при вводе чисел, например при вводезначение и другой появляется.Я попытался исправить это, получив значение из editText с помощью этого метода:

public double stringToDouble(String s){
        if (nf == null){
            nf = NumberFormat.getInstance(Locale.US);
        }
        try {
            return nf.parse(s).doubleValue();
        } catch (ParseException e) {
            e.printStackTrace();
            return 0.0;
        }
    }

и

val = stringToDouble(et.getText().toString());

Но, очевидно, это все еще не работает для некоторых людей.

Один пользователь из Словении сообщил, что он работает нормально, если настройки

  • ;Язык и клавиатура:
  • Выбор языка: установлен английский (Словения)
  • Сенсорный ввод: установлен только английский и любой другой язык (в моем случае Словения)
  • Двуязычное прогнозирование: ВЫКЛ
  • Прогнозирование текста: OFF

Как правильно выбрать двойные значения?Спасибо

1 Ответ

7 голосов
/ 26 сентября 2011

Судя по всему, правильный способ сделать это:

public double stringToDouble(String s){
        if (nf == null){
            nf = NumberFormat.getInstance(Locale.getDefault());
        }
        try {
            return nf.parse(s).doubleValue();
        } catch (ParseException e) {
            e.printStackTrace();
            return 0.0;
        }
    }

Пока что это работает для меня.

...