如何保留double型小数点后两位有效数字,不足补零? 关键是不足补零
6.23345-->235546.23
    0.4-->0.40

解决方案 »

  1.   

    记得有个format类的,不太清楚了不过
      

  2.   

    DecimalFormat df = new DecimalFormat("########.##");
        String dff = df.format(23.22222);
        System.out.println(dff);
      

  3.   

    DecimalFormat df = new DecimalFormat("#,##0.00");
    String str = df.format(4.012354);
    df.parse(str)
      

  4.   

    重来
    DecimalFormat df = new DecimalFormat("########.00");
        String dff = df.format(23.2);
        System.out.println(dff);这次可以了。
      

  5.   

    DecimalFormat df = new DecimalFormat("#,##0.00");
      

  6.   

    可我试不出来
    我用rs.getString("money")->double型,补零->String型  就又变为23.4 了。
      

  7.   

    注意到java的数据类型转换都是截尾法,而楼主要保留"小数点后两位有效数字",所以唯一的方法是先将这个数乘上1000,转换成整型数n,判断末位d,若d>=5,则n=n+(10-d),若d<5,则n=n-d,在将n转换成double型,再除以1000,最后在对此数进行格式处理啊
      

  8.   

    其他的要不是最后不会补零,要不就是.4前面不补零。
    用#.##不好,我是用DecimalFormat(“0.00”),但就是不会转0.00
      

  9.   

    import java.text.*;public class NumFormat{ public static void main(String[] args){
    NumberFormat formatter = NumberFormat.getNumberInstance();
    formatter.setMinimumFractionDigits(2);
    formatter.setMaximumFractionDigits(2);
    System.out.println(formatter.format(0));
    }
    }
      

  10.   

    谢谢大家!
    我还有两个50分的帖子还无人过问,
    1、《jsp编个使服务器探测与某个主机是否通路和进入主机的程序 》http://community.csdn.net/Expert/topic/4134/4134948.xml?temp=.1761438
    2、《关于源代码泄露问题 》
    http://community.csdn.net/Expert/topic/4114/4114870.xml?temp=.2196619欢迎大家献计!
      

  11.   

    我明白你的意思,就是货币嘛,给你我写的一段VBS代码参考一下 function digiformat(num){
    numstr = new String(num);
    len = numstr.length;
    idx = numstr.indexOf(".");
    //return len; if(idx == -1)
    return numstr + ".00";
    if(idx == len - 1)
    return numstr + "00";
    else if((idx + 1) == len - 1)
    return numstr + "0";
    else if((idx + 2) == len - 1)
    return numstr;
    else if (parseInt(numstr.substr(idx + 3,1)) >=5)
    return numstr.slice(0, idx + 2) + (parseInt(numstr.substr(idx + 2,1)) + 1);
    else
    return numstr.slice(0, idx + 3);

    }
      

  12.   

    但是你要记着一定要载入java.util.DecimalFormat这个类!
      

  13.   

    在NUMBERFORMAT和他的子类中是这样一来规定的
    如果模是#则遇上0就省略.比如#.## 对于3.00来说,返回的就是3
    而如果模是0则遇上0就不省.比如0.00对于3.00来说返回3.00
    所以楼主的这个问题就只要在NUMBERFORMAT实例话的时候传如模比如0.00即可.
      

  14.   

    ^_^  我再一次感受到csdn上的温暖~~~~!朋友们,我爱你们!!!