2012-05-10 12 views
9

Próbowałem wprowadzić walutę ręcznie. Oto mój kodJak ustawić niestandardową walutę w java?

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

wyjście Program

3.333.454

Dlaczego symbol waluty ustawić nie pojawił?

Odpowiedz

23

Spróbuj tego:

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

dzięki koleś, to działa. Ale jak usunąć 2 cyfry dziesiętne z tyłu? – greenthunder

+1

Dodaj 'df.setMaximumFractionDigits (0);' – mprivat

+0

To wydaje się niesamowite rozwiązanie !!!!! –

0

Poinformowałeś DecimalFormat, który symbol waluty użyć, gdy musi sformatować walutę. Ale nie powiedziałeś jej, żeby sformatować walutę. Domyślny wzorzec używany przez konstruktor no-arg nie ma na celu formatowania walut. Użyj dedykowanego wzoru do tego.

The javadoc mówi wszystko, co musisz wiedzieć.

Powiązane problemy