double f = 0;
BigDecimal b = new BigDecimal(f);
double num = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println(num);
public static void main(String[] args) {
BigDecimal d = new BigDecimal(100000); //存款
BigDecimal r = new BigDecimal(0.001875*3); //利息
BigDecimal i = d.multiply(r).setScale(2,RoundingMode.HALF_EVEN); //使用銀行家算法
System.out.println("季利息是:"+i);
}
Output:
季利息是:562.50
在上面簡單地介紹了銀行家舍入法,目前Java支援7中舍入法:
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:銀行家舍入法。
提到四舍五入那麼保留位就必不可少了,在java運算中我們可以使用多種方式來實作保留位。
---------------------
轉自:https://blog.csdn.net/butterballj/article/details/81232854