BigDecimal四捨五入保留小數的坑

2021-10-07 22:35:15 字數 940 閱讀 8399

用bigdecimal做四捨五入保留小數時要注意一點,引數建議是string型別。double型別存在精度問題的坑!!!下面直接放圖看:

這是錄入的資料小數點後有7位:

用string型別引數:

//數值保留六位並且四捨五入

cell.

setcellstyle

(cellstyledouble)

;bigdecimal decimal =

newbigdecimal

(strval)

;system.out.

println

("轉換後》"

+decimal.

setscale(6

, roundingmode.half_up)

.doublevalue()

);

結果:101.222225

用double型別引數:

//數值保留六位並且四捨五入

cell.

setcellstyle

(cellstyledouble)

;bigdecimal decimal =

newbigdecimal

(double.

parsedouble

(strval));

system.out.

println

("轉換後》"

+decimal.

setscale(6

, roundingmode.half_up)

.doublevalue()

);

結果:101.222224

執行同乙個函式,但因為型別不一樣導致結果不精確!

關於BigDecimal資料的四捨五入

bigdecimal類的主要功能是進行小數的大數計算,而且最重要的是可以精確到指定的四捨五入位數。如果要進行四捨五入的操作,則必須依靠以下的方法 public bigdecimal divide bigdecimal divisor,int scale,int roundingmode scale ...

qt的四捨五入 Qt(C )四捨五入

qt現在是四捨六入五成雙,要想四捨五入得自己想辦法,實現如下 include include double c1 3.435 double c2 3.445 double c3 3.4351 double c4 3.4451 double c5 3.445 qdebug qdebug qdebug ...

mysql 金額 四捨五入 mysql四捨五入

雲資料庫 mysql 雲資料庫 rds for mysql 是穩定可靠 可彈性伸縮的雲資料庫服務。通過雲資料庫能夠讓您幾分鐘內完成資料庫部署。雲端完全託管,讓您專注於應用程式開發,無需為資料庫運維煩惱 低至 0.24 小時起,買1年83折 雲資料庫mysql 雲資料庫 rds for mysql 是...