BigDecimal 的捨入模式

2021-05-26 09:18:40 字數 929 閱讀 2262

eg:

bigdecimal x1b = new bigdecimal(54d);

bigdecimal x2b = new bigdecimal(20d);

double x = ((x1b.add(x2b)).divide(new bigdecimal("2"),6,roundingmode.half_up)).doublevalue();

即:商=被除數.devide(除數,保留小數字數,精確方法).

roundmode是指舍位時候的模式,傳引數的時候用bigdecimal.round_***x_***,

有: round_ceiling:   舍位時往正無窮方向移動   1.1-> 2   1.5-> 2   1.8-> 2   -1.1-> -1   -1.5-> -1   -1.8-> -1

round_down:向0的方向移動1.1-> 1   1.5-> 1   1.8-> 1   -1.1-> -1   -1.5-> -1   -1.8> -1

round_floor:與ceiling相反,往負無窮   1.1-> 1   1.5-> 1   1.8-> 1   -1.1-> -2   -1.5-> -2   -1.8-> -2

round_half_down:以5為分界線,或曰五舍六入1.5-> 1   1.6-> 1   -1.5-> -1   -1.6-> -2  

round_half_even:同樣以5為分界線,如果是5,則前一位變偶數1.15-> 1.2   1.16-> 1.2   1.25-> 1.2   1.26-> 1.3

round_half_up:最常見的四捨五入

unnecessary:無需舍位

round_up:與round_down,遠離0的方向1.1-> 2   1.5-> 2   1.8-> 2   -1.1-> -2   -1.5-> -2   -1.8-> -2

BigDecimal捨入規則

1 round up 捨入遠離零的捨入模式。在丟棄非零部分之前始終增加數字 始終對非零捨棄部分前面的數字加1 注意,此捨入模式始終不會減少計算值的大小。2 round down 接近零的捨入模式。在丟棄某部分之前始終不增加數字 從不對捨棄部分前面的數字加1,即截短 注意,此捨入模式始終不會增加計算值...

BigDecimal運算以及8種捨入模式

bigdecimal是不可變 任意精度的有符號十進位制數。一般是用在大金額結算等對數值精度要求較高的領域 因為浮點數如float double表示小數的精確度不足,僅可以處理16位有效數字 但其運算效能低於double float等,在一般的工程領域數值計算也不會隨便用bigdecimal。本文將介...

BigDecimal的8種捨入方式

在銀行 帳戶 計費等領域,bigdecimal提供了精確的數值計算。其中8種捨入方式值得掌握。round up 遠離零的方向捨入 round down 靠近零的方向捨入 round ceiling 靠近正無窮方向捨入 round floor 靠近負無窮方向捨入 round half up 四捨五入,...