2015-07-21 41 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); 
    } 
}