【问题标题】:setGroupingUsed(true) does not turn on grouping in DecinalFormatsetGroupingUsed(true) 不开启 DecinalFormat 中的分组
【发布时间】:2015-10-29 14:11:33
【问题描述】:

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

【问题讨论】:

  • DecimalFormat df = new DecimalFormat("#,###.00000", dfs);

标签: java decimalformat


【解决方案1】:

引用DecimalFormatJavadoc:

分组大小是分组字符之间的固定位数,例如 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

【讨论】:

    猜你喜欢
    • 2012-10-11
    • 1970-01-01
    • 1970-01-01
    • 2021-12-25
    • 2012-10-16
    • 1970-01-01
    • 1970-01-01
    • 2016-03-08
    • 1970-01-01
    相关资源
    最近更新 更多