2010-02-19 47 views

回答

3

如果你想指定号码如何被格式化,然后您必须使用DecimalFormat构造函数。如果你想“在我的当前语言环境中表示大多数数字的方式”,那么使用NumberFormat的默认实例。

1

NumberFormat.getInstance实际上获取基于区域设置和数字样式的格式化程序。它实际上可能会返回DecimalFormat()对象。 “DecimalFormat是 NumberFormat的一个具体子类,它格式化十进制数” - 来自JDK javadocs

1

我有关于区域设置的相同问题。您可以通过实例化NumberFormat然后将其转换为DecimalFormat来为美国语言环境创建DecimalFormat对象。这就是Oracle所说的:

上面的示例为默认的Locale创建了DecimalFormat对象。如果你想为一个非默认的Locale使用一个DecimalFormat对象,你可以实例化一个NumberFormat然后将其转换为DecimalFormat。这里有一个例子:

NumberFormat nf = NumberFormat.getNumberInstance(loc); 

DecimalFormat df = (DecimalFormat)nf; 

df.applyPattern(pattern); 

String output = df.format(value); 

System.out.println(pattern + " " + output + " " + loc.toString()); 

https://docs.oracle.com/javase/tutorial/i18n/format/decimalFormat.html