2012-05-10 8 views
9

Ho provato a fare la valuta manuale. Ecco il mio codiceCome impostare la valuta personalizzata in java?

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

output del programma è

3.333.454

Perché il simbolo della valuta ho impostato non sembra?

risposta

23

Prova questa:

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

grazie tizio, funziona. Ma come rimuovere 2 cifre decimali dietro? – greenthunder

+1

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

+0

Questa sembra una soluzione eccezionale !!!!! –

0

Hai detto al formato decimale quale simbolo di valuta usare quando deve formattare una valuta. Ma non l'hai detto di formattare una valuta. Il modello predefinito utilizzato dal costruttore no-arg non è pensato per formattare le valute. Usa uno schema dedicato per questo.

The javadoc ti dice tutto ciò che devi sapere.