2015-07-21 38 views
0

我应该使用什么模式的DecimalFormat的,这样,当我的格式BigDecimals的像BigDecimal的DecimalFormat模式。

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

我不认为你可以用直接的方式使用格式化程序。你可以做的是将你的Decimal包装在一个类中,你可以存储在实例化时计算出的适当的格式字符串:

class MyBigDecimal { 
    String asString; 
    BigDecimal n; 

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