常用算法

银行家算法介绍

2017-02-21  本文已影响404人  王元

关于银行家算法的来历,大家可自行查阅,在此不做过多的赘述。

算法的基本规则如下:
1,舍去位的数值小于5时,直接舍去
2,舍去位的数值大于5时,进位后舍去
3,舍去位的数值等于5时,分俩中情况:5后面还有其他的数字(非0),则进位后舍去。若5后面是0(即5是最后一个数字),则根据5前一位的奇偶性来判断是否需要进位,奇数进位,偶数舍去

以上规则可汇成一句话:四舍六入五考虑,五后非零就进一,五后为零看奇偶,五前为偶则舍去,五前为奇则进一

Java5以上使用银行家的舍入法则很简单。直接使用RoundingMode类提供的Round模式即可

public class Client {
    public static void main(String[] args) {
        //存款
        BigDecimal d = new BigDecimal(99999);
        //月利率,*3是季度利率
        BigDecimal r = new BigDecimal(0.001875 * 3);
        //计算利息 小数点后保留俩位,使用银行家算法
        BigDecimal i = d.multiply(r).setScale(2, RoundingMode.HALF_EVEN);
        System.out.println(i);  
    }
}
上一篇 下一篇

猜你喜欢

热点阅读