2012-05-10 23 views
9

Traté de hacer la moneda manual. Aquí está mi códigoCómo configurar moneda en java?

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

La salida del programa se

3.333.454

¿Por qué no aparece el símbolo de moneda puse?

Respuesta

23

Prueba esto:

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

gracias tio, funciona. Pero, ¿cómo eliminar 2 dígitos decimales detrás? – greenthunder

+1

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

+0

¡¡¡Esto parece una solución increíble !!!!! –

0

Le ha indicado a DecimalFormat qué símbolo de moneda debe usar cuando debe formatear una moneda. Pero no le has dicho que formatee una moneda. El patrón predeterminado utilizado por el constructor no-arg no está destinado a formatear las monedas. Use un patrón dedicado para eso.

The javadoc le dice todo lo que necesita saber.

Cuestiones relacionadas