2014-10-29 2 views
1


Мне нужно создать Двойной с двумя десятичными знаками от String - другими словами, мне нужно превратить «100» в 100.00.
Удивительно:Создать двойной с двумя десятичными знаками из строки

double d = Double.valueOf("500"); 
DecimalFormat df = new DecimalFormat("#.00"); 
System.out.print(df.format(d)); 

Печатает:

500,00 

мне нужен, а "500,00". Как я могу это исправить?
Thanks

+4

Это зависит от вашего языкового стандарта JVM. – meskobalazs

+0

Посмотрите на использование printf для вывода форматирования – LeatherFace

+0

import java.text.DecimalFormat; import java.text.NumberFormat; импорт java.util.Locale; public class Main { public static void main (String [] args) { NumberFormat nf = NumberFormat.getNumberInstance (Locale.ENGLISH); DecimalFormat df = (DecimalFormat) nf; df.applyPattern ("#. 00"); double d = Double.valueOf ("500"); System.out.print (df.format (d)); } } –

ответ

1

Вы можете изменить разделитель либо путем установки языкового стандарта, либо с помощью символов DecimalFormatSymbols.

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

NumberFormat nf = NumberFormat.getNumberInstance(Locale.GERMAN); 
DecimalFormat df = (DecimalFormat)nf; 

В качестве альтернативы можно использовать класс DecimalFormatSymbols, чтобы изменить символы, которые появляются в отформатированных чисел, полученных в формате метод. Эти символы включают десятичный разделитель, группирования разделитель, знак минус и знак процента, среди других:

DecimalFormatSymbols otherSymbols = new DecimalFormatSymbols(currentLocale); 
otherSymbols.setDecimalSeparator(','); 
otherSymbols.setGroupingSeparator('.'); 
DecimalFormat df = new DecimalFormat(formatString, otherSymbols); 


Кроме того, вы могли бы найти это полезным: http://tutorials.jenkov.com/java-internationalization/decimalformat.html объясняет почти все, что связано с вашей проблемой в очень простая и приятная манера.

+0

Спасибо, я уже нашел его в предложенном дубликате, однако ваш ответ правильный. – user2824073

+0

Да, я предусмотрел это для быстрой справки, если вы его пропустили, но я бы рекомендовал взглянуть на ссылку для учебника. Мне это хорошо. Добрый день. – EMM

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