Decimal format uses BigDecimal.ROUND_HALF_EVEN and prior to 1.6 this cannot be changed.
In 1.6 a setRoundingMethod() was added to allow the rounding strategy to be changed.
DecimalFormat df = NumberFormat.getNumberInstance(); df.setRoundingMode(1, RoundingMode.HALF_UP); String formatted = df.format(12.345);
If you need an alternate rounding strategy prior to 1.6 then you need to use BigDecimal to do your formatting.
double d = 123.45; BigDecimal bd = new BigDecimal(d); bd.setScale(1, BigDecimal.ROUND_HALF_UP); String formatted = bd.toString();
Leave a Reply
You must be logged in to post a comment.