【发布时间】:2014-04-24 08:48:41
【问题描述】:
在我的程序中,我在DecimalFormat 中使用了 #.## 模式,如下所示:
DecimalFormat df = new DecimalFormat("#.##");
我不小心添加了一个额外的#,如下所示:
DecimalFormat df = new DecimalFormat("##.##");
但这不会影响我的输出。我尝试过使用不同的输入组合。输出没有区别。尝试谷歌搜索,但没有正确的解释。
那么使用“#.##”和“##.##”的确切区别是什么?
如果两者相同,为什么在Java中允许?
如果两者不同,为什么两种情况下的输出相同?
编辑:
示例程序:
import java.text.DecimalFormat;
public class Decimals {
public static void main(String[] args) {
double d1[] = new double[] {100d, -1d, -0.111111d, 2.555666d, 55555555555d, 0d};
DecimalFormat df1 = new DecimalFormat("#.##");
DecimalFormat df2 = new DecimalFormat("##.##");
for (double d : d1) {
System.out.println(df1.format(d));
System.out.println(df2.format(d));
}
}
}
输出:
100
100
-1
-1
-0.11
-0.11
2.56
2.56
55555555555
55555555555
0
0
【问题讨论】:
-
你测试的值是什么,你得到了什么结果?
-
用示例程序更新了问题。
-
"如果两者相同,为什么在 Java 中允许?" - 因为检测等效模式比仅仅允许它们更难?
标签: java decimalformat