在大多数情况下,我们怎么能证明,我们何时使用使用的NumberFormat或DecimalFormat的
NumberFormat.getInstance();
我们什么时候使用
new DecimalForamt(...);
在大多数情况下,我们怎么能证明,我们何时使用使用的NumberFormat或DecimalFormat的
NumberFormat.getInstance();
我们什么时候使用
new DecimalForamt(...);
如果你想指定号码如何被格式化,然后您必须使用DecimalFormat构造函数。如果你想“在我的当前语言环境中表示大多数数字的方式”,那么使用NumberFormat的默认实例。
NumberFormat.getInstance实际上获取基于区域设置和数字样式的格式化程序。它实际上可能会返回DecimalFormat()对象。 “DecimalFormat是 NumberFormat的一个具体子类,它格式化十进制数” - 来自JDK javadocs
我有关于区域设置的相同问题。您可以通过实例化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