需求:去除Bigdecimal小數點後的0
System.out.println( new BigDecimal("100.000").toString());
程序的輸出即爲: 100.000
如果我們希望去除末尾多餘的0,那麼我們應該這麼寫:
System.out.println( new BigDecimal("100.000").stripTrailingZeros().toString());
其中,stripTrailingZeros()函數就是用於去除末尾多餘的0的,但是此時程序的輸出爲: 1E+2
是科學計數法,可能並不是我們想要的。
解決的方法很簡單,如果想要避免輸出科學計數法的字符串,我們要用toPlainString()函數代替toString()。如:
System.out.println( new BigDecimal("100.000").stripTrailingZeros().toPlainString());
此時程序的輸出就爲 100
**************************************
java api:
public BigDecimal stripTrailingZeros()
返回一個BigDecimal
,它在數字上等於此值, BigDecimal
表示中刪除任何尾隨零。 例如,從汽提尾隨零BigDecimal
值600.0
,其具有[ BigInteger
, scale
]組件等於[6000,1],產率6E2
與[ BigInteger
, scale
]組分等於[6,-2]。 如果這個BigDecimal在數字上等於零,則返回BigDecimal.ZERO
。
結果
一個數字相等的 BigDecimal
,任何尾隨零被刪除。
從以下版本開始:
1.5
************************************************
代碼:
public static void main(String[] args) {
// 浮點數的打印
System.out.println(new BigDecimal("10000000000").toString());
// 普通的數字字符串
System.out.println(new BigDecimal("100.000").toString());
// 去除末尾多餘的0
System.out.println(new BigDecimal("100.000").stripTrailingZeros().toString());
// 避免輸出科學計數法
System.out.println(new BigDecimal("100.000").stripTrailingZeros().toPlainString());
}
複製代碼
輸出結果
10000000000
100.000
1E+2
100