我们在小学就学过四舍五入的方法,但是四舍五入并非真正的公平,0其实本身没有意义,所以1-4共四个数舍去,5-9五个数进一位。其实并非真正的公平精确,所以在银行业就提出了银行家舍入算法,具体是:
四舍六入五考虑,五后非零进一位,五后为零看奇偶,五前为偶应舍去,五前为奇应进位。
java中的BigDecimal就提供了银行家舍入的方法。
public static void main(String[] args) {
int i = BigDecimal.valueOf(3).divide(BigDecimal.valueOf(2), RoundingMode.HALF_EVEN).intValue();
System.out.println(i);
int i1 = BigDecimal.valueOf(5).divide(BigDecimal.valueOf(2), RoundingMode.HALF_EVEN).intValue();
System.out.println(i1);
}