须要自己判一下。自己做一个四舍五入。我也遇到过似类问题。因为JAVA是不精确计算。
所以二个小数都相加就会出现这种现像。解决方法有一个JAVA的函数。你可以找找。

解决方案 »

  1.   

    double a = 0;    
    a = 310.5+59.4+29.7                    
    a = Math.round(a*Math.pow(10,2));    
    a = a/Math.pow(10,2);                     
    System.out.println(a);
      

  2.   

    import java.text.DecimalFormat;public class Untitled1 {
      public static void main(String[] args) {
        double d = 0;  
        d = 310.5 + 59.4 + 29.7 ; 
        DecimalFormat df = new DecimalFormat();
        df.setMinimumFractionDigits(2);
        df.setMaximumFractionDigits(2);
        String outStr = df.format(d);                 
        System.out.println(outStr);
      }
    }
      

  3.   

    public static String floatToStr2(double num) throws Exception{
        String reS=null;
        try{
          java.text.NumberFormat format = java.text.NumberFormat.getNumberInstance();
          format.setMaximumFractionDigits(2);
          reS = format.format(num);
        }catch(Exception e){    }
        return reS;
    }