/**  * 提供小数位四舍五入处理。  * @param v 需要四舍五入的数字  * @param scale 小数点后保留几位  * @return 四舍五入后的结果  */  public static double round(double v,int scale){  
String temp="#,##0.";  
for (int i=0;i<scale ;i++ )  
{  
temp+="0";  
}  
return Double.valueOf(new java.text.DecimalFormat(temp).format(v));  
}  
Java带的Math.round不提供精确到位数。上面方法可以完成此功能

解决方案 »

  1.   

    http://blog.csdn.net/faintbear/archive/2004/08/30/88657.aspx
      

  2.   

    public class Test {

    public static void main(String[] args) {
            float[] float_args = {12345.26f, 1234.22f, 123.22f, 0.123456789f};
            for (int i = 0; i < float_args.length; i++) {
       System.out.println(floatFormat(float_args[i]));
       }
            
            double[] double_args = {12345.26d, 1234.22d, 123.22d, 0.123456789d};
            for (int i = 0; i < double_args.length; i++) {
    System.out.println(doubleFormat(double_args[i]));
    }
            
    }

    public static String floatFormat(float f) {
    DecimalFormat df = new DecimalFormat("0.#");
            return df.format(f);        
    }

    public static String doubleFormat(double d) {
    DecimalFormat df = new DecimalFormat("0.##");
            return df.format(d);        
    }
    }
      

  3.   

    double dC = 1000.2356
    double dC1 = (double)((int)(dC * 100) + 0.5))/100.0;
      

  4.   

    return Double.valueOf(new java.text.DecimalFormat(temp).format(v));  编译不过去阿
      

  5.   

    double dC = 1000.2356;
    dC=(double)Math.round(dC*100)/100;
    System.out.print(dC);
      

  6.   

    1位小数就是Math.round(XX*10)/102位小数就是Math.round(XX*100)/100