import java.text.DecimalFormat;public class SetNumberPrecision {
   private String s=null;
   public double setNumberPrecision(double x,int Number){
   String p;
   if(Number==0){
   p="#0";
   }
   else{
   p = "#0.";  
       for(int i=0;i<Number;i++){  //  for的巧妙运用
           p=p+"0";  
       }
   }
     
       DecimalFormat f = new DecimalFormat(p);  
       String s = f.format(x);  
       return Double.parseDouble(s);  
   }
           }
问题:1.例如:当Number=0,x=10.0时,想要的结果是整数10,而返回的是10.0,怎样解决此问题?
      2.例如:当Number=2,x=10.10时,想要返回的结果是10.10,而返回的是10.1,怎样解决此问题?

解决方案 »

  1.   

    String s = f.format(x);
    System.out.println(s);
    return Double.parseDouble(s);打印出来的s就是想到的数据,可是你又把它转换成double型就不可以了。
    double是不能存10或者10.10这样的浮点数的。
      

  2.   

    double number=3.1415926
    不是格式化控制台System.out.printf("%.2f\n",number)也可以控制小数位的输出3.14吗
      

  3.   

    http://zhidao.baidu.com/question/22080787.html?fr=qrl&cid=870&index=2&fr2=query
      

  4.   

    当Number=0,x=10.0时
    String result = Double.toString(x).split("\\.")[0];
    return result;
    当Number=2,x=10.10时
    DecimalFormat df = new DecimalFormat(".00");
    String result2 = df.format(x);
    return result;
    用String型保证你想要的格式,在需要用其计算的地方用Double.parseDouble(result);转回来。