天天看點

java小數點保留後兩位

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