Bigdecimal轉string取整

需求:去除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表示中刪除任何尾隨零。 例如,從汽提尾隨零BigDecimal600.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

 

發佈了32 篇原創文章 · 獲贊 25 · 訪問量 42萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章