我有一种看法,Locale
就是至少在数字的情况下在适当的位置添加逗号。但我看到我尝试过的不同输出。
我尝试了以下,
public static void main(String[] args) {
DecimalFormat df = null;
df = (DecimalFormat) DecimalFormat.getInstance(Locale.CHINESE);
System.out.println("Locale.CHINESE "+df.format(12345.45));
df = (DecimalFormat) DecimalFormat.getInstance(Locale.GERMAN);
System.out.println("Locale.GERMAN "+df.format(12345.45));
}
输出:
Locale.CHINESE 12,345.45
Locale.GERMAN 12.345,45
如果你仔细看逗号,你会发现一个很大的不同。
现在,java.util.Locale 的 javadoc说
... 需要区域设置来执行其任务的操作称为区域设置敏感,并使用区域设置为用户定制信息。例如,显示数字是一种区域设置敏感操作——数字应根据用户所在国家、地区或文化的习俗/惯例进行格式化......
我看到一个逗号被解释为 another 中的小数点Locale
,这真的很奇怪,因为值正在改变。
所以,帮助我理解这一点。究竟是Locale
什么?输出的剧烈变化不会导致代码/数据出现重大问题吗?