По умолчанию объект 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)); } }
Выход
Будет напечатан следующий результат.