银行家舍入(Banker's Round)的近似算法
其规则如下:
- 舍去位的数值小于5时,直接舍去;
- 舍去位的数值大于等于6时,进位后舍去;
- 当舍去位的数值等于5时,分两种情况:5后面还有其他数字(非0),则进位后舍去;若5后面是0(即5是最后一个数字),则根据5前一位数的奇偶性来判断是否需要进位,奇数进位,偶数舍去。
Java支持以下七种舍入方式
- ROUND_UP:远离零方向舍入,向绝对值最大的方向舍入,只要舍弃位非0即进位
- ROUND_DOWN:趋向零方向舍入,向绝对值最小的方向输入,注意:所有的位都舍弃,不存在进位情况
- ROUND_CEILING:向正无穷方向舍入,向正最大方向靠拢,如果是正数,舍入行为类似于ROUND_UP;如果为负数,则舍入行为类似于ROUND_DOWN。
- ROUND_FLOOR:向负无穷方向舍入
- HALF_UP:最近数字舍入(进)
- HALF_DOWN:最近数字舍入(5舍)
- HALF_EVEN:银行家算法