我正在从事一个国际项目并观察到,在 Java 中,小数点分隔符的选择是基于区域设置的语言,而不是它的国家。例如:
DecimalFormat currencyFormatter = (DecimalFormat) NumberFormat.getInstance(new Locale("it","IT"));
System.out.println(currencyFormatter.format(-123456.78));
currencyFormatter = (DecimalFormat) NumberFormat.getInstance(new Locale("en","IT"));
System.out.println(currencyFormatter.format(-123456.78));
产生以下输出:
-123.456,78
-123,456.78
我原以为它会跟随这个国家,因为如果我在这个国家,无论我说英语还是意大利语,那个国家的数字都是用逗号分隔的小数点。
我的问题有两个:
- 有谁知道为什么这种行为遵循语言?
- 更重要的是,谁能提供有关如何修改 Java 中的默认行为以改为遵循该语言的详细信息?
谢谢。