У меня проблемы с пользователями, для которых в качестве региональных настроек для стран, не входящих в США, возникают ошибки при преобразовании значений типа double в строки и из строк. До сих пор я считаю, что у меня есть правильный способ конвертировать строки в двойные:
public double stringToDouble(String s){
try {
return NumberFormat.getInstance(Locale.getDefault()).parse(s).doubleValue();
} catch (ParseException e) {
e.printStackTrace();
return 0.0;
}
}
То есть, взятие ввода из поля EditText и преобразование его в двойное число. Однако у меня возникли проблемы с преобразованием значений типа double в строки для заполнения других полей EditText. Вот код, который я использую, пользователи сообщают о сбоях:
public String doubleToString(double d, String pattern){
DecimalFormat df =(DecimalFormat) NumberFormat.getInstance(Locale.getDefault());
df.applyLocalizedPattern(pattern);
return df.format(d);
}
Я использую строку шаблона, основанную на количестве десятичных разрядов в текстовом поле редактирования, например "# 0.00"
Я не могу понять, что вызывает сбои, и я не могу даже сам проверить это, потому что у меня нет этих локалей на моих устройствах.
Любая помощь будет принята с благодарностью!