2013-11-28 27 views
2

我想我的(通常是大的)数字输出格式,用使用下面的代码为千位分隔空间:的Java的DecimalFormat格式化零

final String PATTERN = "#,##0"; 
int value1 = Integer.MAX_VALUE; 
int value2 = 0; 
DecimalFormatSymbols dfs = new DecimalFormatSymbols(); 
dfs.setGroupingSeparator(' '); 
DecimalFormat df = new DecimalFormat(PATTERN, dfs); 
System.out.println("`" + df.format(value1) + "`"); 
System.out.println("`" + df.format(value2) + "`"); 

然而,这让我很困惑,输出为:

`2 147 483 647` 
`` 

请,什么是正确的方式去实现我想要的结果:

`2 147 483 647` 
`0` 
+3

当我运行你的代码时,我得到'0'。你使用的是什么Java版本和区域设置? – Keppil

+0

我也得到'0' ... JDK 1.7 – rolfl

+0

你能打印默认的'Lo​​cale'吗? –

回答

0

由于去人们已经在评论中作出回应,模式是正确的并产生期望的结果。

问题部分只是一步之遥。假设问题中有代码,那么如果df.format(getNumber());#getValue()中失败,那么#format()永远不会被执行,它(在我的代码中)最终导致用户界面中的空字符串和我的困惑。