BigDecimal的DecimalFormat模式。

时间:2015-07-21 10:12:51

标签: java formatting bigdecimal

我应该使用什么样的DecimalFormat,以便在格式化BigDecimals时使用

new BigDecimal("4235886589.00000");
new BigDecimal("4235886589.0000030000");
new BigDecimal("4235886589.0");
new BigDecimal("4235886589");

输出必须具有以下外观:

4,235,886,589.00000;  4,235,886,589.0000030000; 4,235,886,589.0; 4,235,886,589;

所以基本上我试图写一个最终不会切断零的模式,如果没有必要就不会把它们放进去。我尝试用模式处理它:

DecimalFormat formatter = new DecimalFormat("#,###,##0.########");
DecimalFormat formatter = new DecimalFormat("#,###,##0.000000");

但是第一个格式化程序会切断零,而第二个格式化程序会将它们放在不必要的位置。

1 个答案:

答案 0 :(得分:1)

我不认为你可以使用格式化程序直接做到这一点。您可以做的是将Decimal包装在一个类中,您可以在该类中存储在实例化时计算的相应格式字符串:

class MyBigDecimal {
  String asString;
  BigDecimal n;

  public MyBigDecimal(String asString) {
    this.asString = asString;
    n = new BigDecimal(asString);
  }
}