2012-05-10 6 views
9

Я попытался сделать ручную валюту. Вот мой кодКак настроить настройку валюты в java?

DecimalFormat df = new DecimalFormat(); 
DecimalFormatSymbols dfs = new DecimalFormatSymbols(); 
dfs.setCurrencySymbol("$"); 
dfs.setGroupingSeparator('.'); 
dfs.setDecimalSeparator('.'); 
df.setDecimalFormatSymbols(dfs); 
System.out.println(df.format(3333454)); 

выход Программа

3.333.454

Почему символ валюты я устанавливаю не появлялся?

ответ

23

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

NumberFormat df = NumberFormat.getCurrencyInstance(); 
DecimalFormatSymbols dfs = new DecimalFormatSymbols(); 
dfs.setCurrencySymbol("$"); 
dfs.setGroupingSeparator('.'); 
dfs.setMonetaryDecimalSeparator('.'); 
((DecimalFormat) df).setDecimalFormatSymbols(dfs); 
System.out.println(df.format(3333454)); 
+0

спасибо чувак, это работает. Но как удалить 2 десятичных цифры позади? – greenthunder

+1

Добавить 'df.setMaximumFractionDigits (0);' – mprivat

+0

Это кажется удивительным решением !!!!! –

4

Потому что вы используете DecimalFormat со стандартным рисунком. Вам необходимо предоставить свой собственный шаблон символу валюты \u00A4.

Или вы используете NumberFormat.getCurrencyInstance().

0

Вы сказали DecimalFormat, какой символ валюты использовать, когда он должен форматировать валюту. Но вы не сказали ему форматировать валюту. Шаблон по умолчанию, используемый конструктором no-arg, не предназначен для форматирования валют. Используйте для этого специальный шаблон.

The javadoc рассказывает вам все, что вам нужно знать.

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