使用NumberFormat或DecimalFormat

时间:2010-02-19 14:24:05

标签: java

在大多数情况下,我们如何证明,何时使用

NumberFormat.getInstance();

我们何时使用

new DecimalForamt(...);

3 个答案:

答案 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