Java國際化(i18n)區域設定特定的DecimalFormat


預設情況下,DecimalFormat物件使用JVM的語言環境。 我們可以在使用NumberFormat類建立DecimalFormat物件時更改預設區域設定。 在下面的例子中,將為兩個不同的區域設定使用相同的模式,可以在輸出中看到差異。

檔案: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));     
   }
}

執行上面範例程式碼,得到以下結果 -

123.45
123,45