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...