舍去位的数值小于5时,直接舍去。
舍去位的数值大于5时,进位后舍去。
当舍去位的数值等于5时,若5后面还有其他非0数值,则进位后舍去,若5后面是0时,则根据5前一位数的奇偶性来判断,奇数进位,偶数舍去。
对于上面的规则我们举例说明
11.556 = 11.56 ------六入
11.554 = 11.55 -----四舍
11.5551 = 11.56 -----五后有数进位
11.545 = 11.54 -----五后无数,若前位为偶数应舍去
11.555 = 11.56 -----五后无数,若前位为奇数应进位
public static void main(String[] args) {
BigDecimal d = new BigDecimal(11.5551);
BigDecimal i = d.multiply(r).setScale(2,RoundingMode.HALF_EVEN); //使用银行家算法
System.out.println(i);
}
Output:
11.56
五舍六入:
public int mathrount(int sum,int size){
//sum总数
//size分成几份
//return 平均数
int i = 0;
if((sum % size)>size/2)i = 1;
return (sum/size)+i;
}