setGroupingUsed(true)不会在DecinalFormat中启用分组

时间:2015-10-29 14:11:33

标签: java decimalformat

出于某种原因,分组在我的例子中不起作用。我得到的输出是:4242424@52420而不是424 242@52420(或类似的)

double d = 4242424.5242;
DecimalFormatSymbols dfs = new DecimalFormatSymbols();
dfs.setDecimalSeparator('@');
dfs.setGroupingSeparator(' ');
df = new DecimalFormat("######.00000", dfs);
df.setGroupingUsed(true);
System.out.println(df.format(d));

1 个答案:

答案 0 :(得分:0)

引用DecimalFormat Javadoc:

  

分组大小是分组字符之间的一个固定位数,例如3表示100,000,000或4表示1,0000,0000。

您没有设置明确的分组大小,因此当您使用您拥有的格式构建DecimalFormat时它变为0(格式中没有分组分隔符)。

double d = 4242424.5242;
DecimalFormatSymbols dfs = new DecimalFormatSymbols();
dfs.setDecimalSeparator('@');
dfs.setGroupingSeparator(' ');
DecimalFormat df = new DecimalFormat("######.00000", dfs);
df.setGroupingUsed(true);
df.setGroupingSize(3); // set explicitely the grouping to 3
System.out.println(df.format(d)); // prints the expected 4 242 424@52420