Cómo mostrar un BigDecimal según la localización
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 (iso 639-1) de dos caracteres y debe escribirse en minúsculas. El segundo parámetro corresponde a los códigos de país (iso 3166) de dos letras y debe escribirse en mayúsculas.