Internalisation Java - DecimalFormat spécifique aux paramètres régionaux

Par défaut, l'objet DecimalFormat utilise les paramètres régionaux de la JVM. Nous pouvons changer les paramètres régionaux par défaut lors de la création de l'objet DecimalFormat à l'aide de la classe NumberFormat. Dans l'exemple ci-dessous, nous utiliserons le même modèle pour deux paramètres régionaux différents et vous pourrez repérer la différence dans la sortie.

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));     
   }
}

Production

Il imprimera le résultat suivant.

123.45
123,45
Impression