一、jstl的formatNumber标签的四舍五入问题
(原地址:http://blog.sina.com.cn/s/blog_8d43f86501010oc4.html)
近日使用JSTL的formatNumber 标签进行四舍五入时,发现它竟然使用的是"4舍6入5奇偶"的算法.
"4舍6入5奇偶":
<fmt:formatNumber value="${56.5}" pattern="#,###,###,###"/>
要实现"四舍五入",只需要在原有值的基础上再加一个比较小的值即可:
"4舍5入":
<fmt:formatNumber value="${56.5 + 0.0001}" pattern="#,###,###,###"/>
二、用DecimalFormat四舍五入保留指定位小数的问题
(原地址:http://www.iteye.com/problems/54703)
DecimalFormat f = new DecimalFormat("#,##0.00");
double d = 1.125;
System.out.println(f.format(d)); // 输出 1.12
d = 1.135;
System.out.println(f.format(d)); // 输出 1.14
解决办法:
DecimalFormat f = new DecimalFormat("#,##0.00");
f.setRoundingMode(RoundingMode.HALF_UP);