我有一个看法,即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说
......需要一个Locale来执行其任务的操作称为语言环境敏感和使用区域设置来定制信息的用户。 例如,显示一个数是语言环境敏感的操作 - 数应根据海关被格式化/用户的国家,地区或文化的约定......
我看到一个逗号被解释为在另一个小数点Locale
,这实在是一件奇怪的事,作为值被改变。
所以,帮助我理解这一点。 究竟什么是Locale
? 会不会在输出的急剧变化导致代码/数据主要问题?