action传过来的:
temp_Object[1] = ((elec)eleclist.get(icount)).getId().getDlE() - ((elec)sart.get(icount)).getId().getDlE();
temp_Object[2] = ((elec)eleclist.get(icount)).getId().getDlQ() - ((elec)sart.get(icount)).getId().getDlQ();
jsp页面显示为:
<td><%= temp_Object[1]></td>两次读库,用小时内最后一条数据减去第一条数据结果显示在web页面上,我现在做出来页面显示的是22.00999999999999怎么用什么方法能处理下,只显示22.00
有没有简单点的方法?知道重新写个类能处理,太麻烦了,也怕弄不好,谁知道好点的方法指点下啊

解决方案 »

  1.   


    <td> <%= Math.floor(temp_Object[1]*100)/100f%> </td> 
      

  2.   

    java.text.NumberFormat nf = java.text.NumberFormat.getNumberInstance();   
    nf.setMinimumFractionDigits(2);// 小数点后保留几位  
    System.out.println(nf.format(7.0000889999));
    public float setRate(float rate) {
     java.text.NumberFormat nf = java.text.NumberFormat.getNumberInstance(); 
    nf.setMinimumFractionDigits(2);// 小数点后保留几位  

     this.rate =nf.format(rate);}
      

  3.   

    public static String subDouble(Object o) {

    String str=o.toString();
    double s = 0 ; 
    try{
    s = Double.parseDouble(str);
    DecimalFormat fmt = new DecimalFormat("0.00");
    str = fmt.format(s);
    }catch(Exception ex){
    return "0.00";
    }
    return str;

    }
      

  4.   

    要精确用DecimalFormat,不需要就用<td> <%= Math.floor(temp_Object[1]*100)/100f%> </td>用Math经常在四舍五入的时候出现问题。 
      

  5.   

    <td> <%= Math.floor(temp_Object[1]*100)/100f%> </td> 不行啊,我加到页面上提示 :The operator * is undefined for the argument type(s ) Object,int  哪里不匹配么?