在大多数情况下,我们如何证明,何时使用
NumberFormat.getInstance();
我们何时使用
new DecimalForamt(...);
答案 0 :(得分:5)
如果要指定数字的格式,则必须使用DecimalFormat构造函数。如果你想“大多数数字在我当前的语言环境中表示的方式”,那么使用NumberFormat的默认实例。
答案 1 :(得分:1)
NumberFormat.getInstance实际上是根据语言环境和数字样式获取格式化程序。它实际上可能会返回DecimalFormat()对象。 “DecimalFormat是一个具体的子类 NumberFormat格式化十进制数“ - 来自JDK javadocs
答案 2 :(得分:1)
我遇到了与语言环境相同的问题。您可以通过实例化NumberFormat然后将其强制转换为DecimalFormat来为US语言环境创建DecimalFormat对象。这就是Oracle所说的:
前面的示例为默认的Locale创建了一个DecimalFormat对象。如果需要非默认语言环境的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