Учебники

Интернализация Java — Десятичный формат, специфичный для локали

По умолчанию объект DecimalFormat использует локаль JVM. Мы можем изменить локаль по умолчанию при создании объекта DecimalFormat с помощью класса NumberFormat. В приведенном ниже примере мы будем использовать один и тот же шаблон для двух разных локалей, и вы сможете увидеть разницу в выходных данных.

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

Выход

Будет напечатан следующий результат.