日期:2014-05-18  浏览次数:20784 次

知道的给个答案,不知道的凑个热闹~~jstl强人帮个忙了
这是浮点数显示的问题,内容如下:
<logic:iterate   id= "cartGood "   name= "cart ">
    <bean:write   name= "cartGood "   property= "goodsId "/>
    <bean:write   name= "cartGood "   property= "goodsName "/>
    <bean:write   name= "cartGood "   property= "goodsNowPrc "/>     <====这里没问题,显示为15.2
    <input   name= "num "   type= "text "   id= "num "   value= "${cartGood.num} "   size= "5 ">
    <c:out   value= "${(cartGood.goodsNowPrc)*(cartGood.num)} "/>     <====这里有问题,当数量是1时显示为15.199999809265137    
  </logic:iterate>

具体显示内容如下:
图书编号   图书名称   单价   数量   金额  
1   12   面纱   15.2     15.199999809265137

那个goodsNowPrc在数据库中都是只有一位小数的,但是当它被乘数运算以后它的小数位数就变得很长了
我想只能在这里 <c:out   value= "${(cartGood.goodsNowPrc)*(cartGood.num)} "/> 处理才能有效果,但是我不知道怎么样做,希望大家帮帮我!谢谢



------解决方案--------------------
Number( ' <c:out value= "${(cartGood.goodsNowPrc)*(cartGood.num)} "/> ').toFixed(1)

toFixed()取几位小数。

试试看行不
------解决方案--------------------
//四舍五入保留小数点后两位数,希望对你有帮助 ^_^
public double leftTwoBit(double d){
BigDecimal b = new BigDecimal(d);
double d1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
return d1;
}