银行家算法及Java中四舍五入

银行家舍入(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:银行家算法

你可能感兴趣的:(银行家算法及Java中四舍五入)