我知道DecimalFormat使用HALF_EVEN舍入作为默认值,并且向最近的邻居"舍入。 但在某些情况下,DecimalFormat有奇怪的行为:
DecimalFormat df = new DecimalFormat();
df.setMinimumFractionDigits(2);
df.setMaximumFractionDigits(2);
System.out.println(df.getRoundingMode()); // returns HALF_EVEN
System.out.println(df.format(12766.135)); // returns 12 766,14
System.out.println(df.format(22766.135)); // returns 22 766,13
System.out.println(df.format(12766.155)); // returns 12 766,16
System.out.println(df.format(22766.155)); // returns 22 766,15
System.out.println(df.format(12766.185)); // returns 12 766,18
System.out.println(df.format(22766.185)); // returns 22 766,19
System.out.println(df.format(12766.145)); // returns 12 766,15
System.out.println(df.format(22766.145)); // returns 22 766,15
System.out.println(df.format(12766.175)); // returns 12 766,17
System.out.println(df.format(22766.175)); // returns 22 766,17
这是一个错误还是我做错了什么?测试了java 1.8.0_141,Eclipse 4.6.3。