Java BigDecimal與科學計數法(轉String)的問題

BigDecimal是處理高精度的浮點數運算的經常使用的一個類java

當須要將BigDecimal中保存的浮點數值打印出來,特別是在頁面上顯示的時候,就有可能遇到預想以外的科學技術法表示的問題。函數

通常直接使用 BigDecimal.toString()方法便可以完成浮點數的打印。可是,toString()方法輸出的字符串並不能保證不是科學計數法。測試

好比直接這麼寫:  code

System.out.println( new BigDecimal("0.000000000000").toString());

程序的輸出結果爲:  blog

0E-12

這是咱們不但願出現的結果。ip

正確的寫法:ci

 System.out.println( new BigDecimal("0.000000000000").toPlainString());

程序輸出的結果爲:字符串

0.000000000000

若是咱們但願去除末尾多餘的0,那麼咱們應該這麼寫:class

 System.out.println( new BigDecimal("0.000000000000").stripTrailingZeros().toPlainString());

其中,stripTrailingZeros()函數就是用於去除末尾多餘的0的程序

程序輸出的結果爲:

0

測試截圖:

相關文章
相關標籤/搜索