出于某种原因,分组在我的例子中不起作用。我得到的输出是: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));
答案 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