當需要將BigDecimal中保存的浮點數值打印出來,特別是在頁面上顯示的時候,就有可能遇到預想之外的科學技術法表示的問題。
一般直接使用 BigDecimal.toString()方法即可以完成浮點數的打印。
如:
System.out.println( new BigDecimal("10000000000").toString());
但是,toString()方法輸出的字符串並不能保證不是科學計數法。
不過在日常的使用中,用toString()方法輸出的就是普通的數字字符串而非科學計數法。
直接這么寫:
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