基礎問題 BigDecimal型別的運算問題

2021-09-26 13:54:23 字數 563 閱讀 5638

bigdecimal a = bigdecimal.zero;

bigdecimal b = bigdecimal.one;

for (int i=0;i<10;i++)

system.out.println(a);

輸出結果發現 a 一直都是0並沒有發生改變,沒有相加變成我們想要的結果,此時我們看原始碼

看原始碼我們發現,bigdecimal是return相加之後的結果,而不是把相加之後的結果設定到本身當前物件中

所以如果想要做bigdecimal的運算正確寫法

bigdecimal a = bigdecimal.zero;

bigdecimal b = bigdecimal.one;

for (int i=0;i<10;i++)

system.out.println(a);

BigDecimal除法問題

bigdecimal做除法時,盡量使用divide bigdecimal divisor,intscale,introundingmode 這個方法 divisor 被除數 scale保留小數字數 roundingmode保留小數時採用的方法,一般使用bigdecimal.round up 四捨五入...

bigdecimal使用問題

初始化bigdecimal型別資料的時候,不要用下圖所示的構造初始化,否則很可能會有問題 理由 如果傳入 中的數字為小數型別,則會出現下圖所示的問題。我看了下jdk api 的說明,找到了如下說法。總結一下就是 轉換小數想達到你想要的結果用 new bigdecimal string 或者 bigd...

BigDecimal 精度問題

在使用bigdecimal過程中,暫時遇到兩個問題,都是精度問題,乙個是精度丟失,乙個是精度顯示問題。bigdecimal建立物件有很多種方式 通過double型別去宣告bigdecimal物件時,就發生精度不准的問題 這個就不建議使用了,可以換種方式去解決這個問題,用string構造器構建物件 設...