2015-11-02 4 views
1

У меня проблема с форматированием десятичных значений для локализации на испанском (и других европейских языках, а также), когда десятичный разделитель для Испании выдается как запятая ,.
Как я могу получить десятичный разделитель как точку .?Десятичный разделитель формата

Вот код, который я использовал для форматирования десятичного числа

DecimalFormat twoDecimalForm = null; 
    twoDecimalForm = new DecimalFormat("#.##"); 
    DecimalFormatSymbols.getInstance().setDecimalSeparator('.'); 
    String valueInDecimal = twoDecimalForm.format(0.005 * progressValue); 
//Exception here 
Log.d(TAG,"valueInDecimal" + Double.valueOf(valueInDecimal)); 

Я получаю запятую , вместо из точки .
Обходных может быть заменить запятую с ..

Но есть ли другие решения?

+0

Многие страны используют запятую в качестве десятичного разделителя, поэтому было бы лучше просто разрешить это: https://docs.oracle.com/cd/E19455-01/806-0169/overview-9/index.html –

+0

@KenWolf Я выполняю некоторую математическую операцию над указанными выше значениями в возможных местах, которые возвращаются 'java.lang.NumberFormatException: Invalid double:' –

+0

Просто не конвертируйте в число: 'Log.d (TAG," valueInDecimal = "+ valueInDecimal.replace (", ",". ");' –

ответ

0

Если вы получаете данные из сети, попросите своего веб-разработчика передать данные в соответствии с вашими требованиями, тогда ваша проблема будет решена или вы можете пойти с заменой.

+0

Это андроид-проект. Если языковой стандарт установлен в Испанию/Европу, тогда значение будет поступать с запятой. –

+0

Как вы получаете данные внутри приложения? Его уже хранят в приложении или получают с сервера? –

+0

Данные, которые я анализирую в десятичном формате, предоставляют разделитель десятичной запятой как запятую, которая приводит нас к неправильной математической операции –