JAVA中BigDecimal的字元化輸出

2021-09-14 06:57:39 字數 948 閱讀 9002

bigdecimal是處理高精度的浮點數運算的常用的乙個類

當需要將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

public static void main(string args)
輸出結果:

10000000000

100.000

1e+2

100

JAVA中BigDecimal的字元化輸出

bigdecimal是處理高精度的浮點數運算的常用的乙個類 當需要將bigdecimal中儲存的浮點數值列印出來,特別是在頁面上顯示的時候,就有可能遇到預想之外的科學技術法表示的問題。一般直接使用 bigdecimal.tostring 方法即可以完成浮點數的列印。如 system.out.prin...

如何應用Java的BigDecimal類

建立bigdecimal物件 bigdecimal bignumber new bigdecimal 89.1234567890123456789 bigdecimal bigrate new bigdecimal 1000 bigdecimal bigresult new bigdecimal 物...

BigDecimal中divide方法注意問題

在使用 bigdecimal rate new bigdecimal 1 divide new bigdecimal 3 時拋異常 non terminating decimal expansion no exact representable decimal result原來是在做除法的時候出現了...