BigDecimal的相加問題

2021-10-04 23:33:08 字數 1249 閱讀 7905

對於使用bigdecimal的add方法進行相加操作時,累加整型的資料沒有問題,但是當我們累加bigdecimal型別的資料時,會發現資料並沒有進行累加,**如下:new bigdecimal中放入的是乙個int型資料。

int i =3;

bigdecimal overdueratetotal=

newbigdecimal(0

);overdueratetotal = overdueratetotal.

add(

newbigdecimal

(i))

; system.out.

println()

;"overdueratetotal:"

+overdueratetotal)

;

這樣得出的overdueratetotal:3,累加資料沒有問題。

bigdecimal i =

newbigdecimal

(3.00);

bigdecimal overdueratetotal=

newbigdecimal(0

);overdueratetotal = overdueratetotal.

add(

newbigdecimal

(i))

; system.out.

println()

;"overdueratetotal:"

+overdueratetotal)

;

這樣得出的overdueratetotal:0,累加資料出問題,應該改為:

bigdecimal i =

newbigdecimal

(3.00);

bigdecimal overdueratetotal=

newbigdecimal(0

);overdueratetotal = overdueratetotal.

add(

newbigdecimal

(i.tostring()

)); system.out.

println()

;"overdueratetotal:"

+overdueratetotal)

;

具體原因暫不知,想知道的看這個

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構造器構建物件 設...