De forma predeterminada, el objeto DecimalFormat utiliza la configuración regional de la JVM. Podemos cambiar la configuración regional predeterminada mientras creamos el objeto DecimalFormat usando la clase NumberFormat. En el siguiente ejemplo, usaremos el mismo patrón para dos configuraciones regionales diferentes y puede detectar la diferencia en la salida.
IOTester.java
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.Locale;
public class I18NTester {
public static void main(String[] args) {
String pattern = "###.##";
double number = 123.45;
Locale enlocale = new Locale("en", "US");
Locale dalocale = new Locale("da", "DK");
DecimalFormat decimalFormat = (DecimalFormat) NumberFormat.getNumberInstance(enlocale);
decimalFormat.applyPattern(pattern);
System.out.println(decimalFormat.format(number));
decimalFormat = (DecimalFormat) NumberFormat.getNumberInstance(dalocale);
decimalFormat.applyPattern(pattern);
System.out.println(decimalFormat.format(number));
}
}
Salida
Imprimirá el siguiente resultado.
123.45
123,45
Impresión