如果是  1/6  就是保留两位小数输入 0.17
        1/10 就是原样输入 0.1
        1/0 就是0.0不知道怎么弄    求解答double小数

解决方案 »

  1.   


    public double getResult(double a,double b){
    if(b==0)
    return 0;
    String rStr = a/b+"";
    int pointIdx = rStr.indexOf(".");
    if(pointIdx>0 && (pointIdx+2)<rStr.length()){
    double ret = Double.parseDouble(rStr.substring(0,pointIdx+3));
    return Integer.parseInt(rStr.substring(pointIdx+3,pointIdx+4))<5?ret:ret+0.01;
    }
    return a/b;
    }
      

  2.   

    DecimalFormat df = new DecimalFormat("#.##");
    System.out.println(df.format(1/6.0));
    System.out.println(df.format(1/10.0));
    前2个可以通过上面的方法获取  第3个会抛异常  只能自己写方法判断  比如2楼写的