我發現使用十進制格式,並四捨五入顯示模式一些值十進制格式舍入模式產生不一致的值
double b = 123.135;
//double b = 1896.675;
//double b = 523.135;
DecimalFormat df = new DecimalFormat(".##");
df.setRoundingMode(RoundingMode.HALF_UP);
System.out.println(b);
String a = df.format(b);
System.out.println(a);
double roundOff = Math.round(b * 100.0)/100.0;
System.out.println(roundOff);
主要生產出現意外的行爲:
123.135
123.14
123.14
我相信這是正確的。
在使用這個值:1896.675產生如下:
1896.675
1896.67
1896.68
這一點我認爲是意想不到的 - 我在做什麼錯在這裏?
設置的BigDecimal BD =新的BigDecimal(二);並打印bd結果1896.674999999999954525264911353588104248046875,我猜是接近存儲的實際值。 – user3284549