Cómo mostrar un BigDecimal según la localización

De Dos Ideas.
Saltar a: navegación, buscar

Si se quiere mostrar un objeto BigDecimal usando el método toString() de su clase, siempre se verá con el formato numérico norteamericano, es decir con ',' para separador de miles y con '.' para separador de decimales.

Para mostrarlo según una localización determinada se puede utilizar la clase NumberFormat que formatea un objeto con valor numérico según el Locale que se indique:

BigDecimal myNumber = new BigDecimal("-1234.56"); NumberFormat format;

//Utilizando el locale por default de la JVM... format = NumberFormat.getInstance(); System.out.println(format.format(myNumber));

//Utilizando un locale específico... Locale localeArgentina = new Locale("es", "AR"); format = NumberFormat.getInstance(localeArgentina); System.out.println(format.format(myNumber));

El primer parámetro para instanciar un objeto Locale es el código de idioma (iso639-1) de dos caracteres y debe escribirse en minúsculas. El segundo parámetro corresponde a los códigos de país (iso3166) de dos letras deben escribirse en mayúsculas.

Ver también