關於BigDecimal資料的四捨五入

2021-07-07 04:40:08 字數 663 閱讀 6416

bigdecimal類的主要功能是進行小數的大數計算,而且最重要的是可以精確到指定的四捨五入位數。

如果要進行四捨五入的操作,則必須依靠以下的方法:

public bigdecimal divide(bigdecimal divisor,int scale,int roundingmode)

scale:表示四捨五入的位數

roundingmode:四捨五入的操作模式,一般用round_half_up

1、 round_up:遠離零方向捨入。向絕對值最大的方向捨入,只要捨棄位非0即進製。

2、 round_down:趨向零方向捨入。向絕對值最小的方向輸入,所有的位都要捨棄,不存在進製情況。

3、 round_ceiling:向正無窮方向捨入。向正最大方向靠攏。若是正數,捨入行為類似於round_up,若為負數,捨入行為類似於round_down。math.round()方

法就是使用的此模式。

4、 round_floor:向負無窮方向捨入。向負無窮方向靠攏。若是正數,捨入行為類似於round_down;若為負數,捨入行為類似於round_up。

5、 half_up:最近數字捨入(5進)。這是我們最經典的四捨五入。

6、 half_down:最近數字捨入(5舍)。在這裡5是要捨棄的。

7、 hail_even:銀行家捨入法。

關於BigDecimal,小數型別的處理

小數字數 bigdecimal.setscale 方法用於格式化小數點 setscale 1 表示保留一位小數,預設用四捨五入方式 setscale 1,bigdecimal.round down 直接刪除多餘的小數字,如2.35會變成2.3 setscale 1,bigdecimal.round ...

關於BigDecimal 的不精確計算問題

關於bigdecimal 的不精確計算問題 public static void main string args 輸入結果為 504.549999999999982946974341757595539093017578125 實際結果應為 504.55 現在作了如下函式,可以解決一部分處理,但是測...

關於BigDecimal的操作和遇到的問題

在很多的專案會使用到bigdecimal對數字的操作 雖然不是支付相關的相關,但是有些地方也需要精確計算 對於這個東西,使用了好幾次,只是每次用到都要去查閱一翻,太懶,就在這裡做一下總結,以便後期使用。bigdecimal bigstart new bigdecimal starttimenum b...