java Bigdecimal显示两位小数
问题:数据库中的数据为1.23456---------对应的----------java属性为Bigdecimal类型,在页面中显示时只保留小数点后两位,应该怎么做呢。
答案1:一部人因为经常用Bigdecimal用+-*/的精准运算,就会用如以下的工具类去处理并得到--------只保留小数点后两位的值:
/**
* 提供精确的小数位四舍五入处理。
* @param v 需要四舍五入的数字
* @param scale 小数点后保留几位
* @return 四舍五入后的结果
*/
public static double round(double v,int scale){
if(scale<0){
throw new IllegalArgumentException(
"The scale must be a positive integer or zero");
}
BigDecimal b = new BigDecimal(Double.toString(v));
BigDecimal one = new BigDecimal("1");
return b.divide(one,scale,BigDecimal.ROUND_HALF_UP).doubleValue();
}
答案2:更简单直接的方法是用fmt:formatNumber处理如下:
<td><fmt:formatNumber type="number" value="${entity.liuqh}" pattern="0.00" maxFractionDigits="2"/>元</td>
本人觉得,如果只是为了显示一个四舍五入并保留两位小数,并不涉及到精准运算的话,选答案2