簡介
主要涉及類BigDecimal,舍入模式RoundingMode,及其他類
java支持7中舍入法
?1、 ROUND_UP:遠離零方向舍入。向絕對值最大的方向舍入,只要舍棄位非0即進位。
?2、 ROUND_DOWN:趨向零方向舍入。向絕對值最小的方向舍入,所有的位都要舍棄,不存在進位情況。
?3、 ROUND_CEILING:向正無窮方向舍入,向正最大方向靠攏。如果參數是正數,使用UP規則,如果參數是負數,使用DOWN規則;
?4、 ROUND_FLOOR:向負無窮方向舍入,向負無窮方向靠攏。如果參數是正數,使用DOWN規則,如果參數是負數,使用UP規則;
?5、 HALF_UP:最近數字舍入(5進),這是我們最經典的四舍五入。如果要丟掉的數字大于等于0.5,使用UP規則;否則使用DOWN規則;
?6、 HALF_DOWN:最近數字舍入(5舍)。在這里5是要舍棄的。如果要丟掉的數字大于0.5,使用UP規則;否則使用DOWN規則;
?7、 HAIL_EVEN:銀行家舍入法。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?1)舍去位的數值小于5時,直接舍去; ? ?//11.554 = 11.55?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2)舍去位的數值大于5時,進位后舍去;//?11.556 = 11.56
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?3)當舍去位的數值等于5時,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?若5后面還有其他非0數值,則進位后舍去; ? ??//11.5551 = 11.56 -----五后有非0數進位舍去
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?若5后面是0時,則根據5前一位數的奇偶性來判斷,奇數進位,偶數舍去; //11.545 = 11.54?,11.555 = 11.56? ? ? ? ? ? ? ? ? ??
幾種保留小數位的方法
1.使用BigDecimal?
2.使用DecimalFormat
3.使用String?.format
4.使用struts標簽情況下使用format屬性