如何保留double型小数点后两位有效数字,不足补零? 如何保留double型小数点后两位有效数字,不足补零? 关键是不足补零6.23345-->235546.23 0.4-->0.40 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 记得有个format类的,不太清楚了不过 DecimalFormat df = new DecimalFormat("########.##"); String dff = df.format(23.22222); System.out.println(dff); DecimalFormat df = new DecimalFormat("#,##0.00");String str = df.format(4.012354);df.parse(str) 重来DecimalFormat df = new DecimalFormat("########.00"); String dff = df.format(23.2); System.out.println(dff);这次可以了。 DecimalFormat df = new DecimalFormat("#,##0.00"); 可我试不出来我用rs.getString("money")->double型,补零->String型 就又变为23.4 了。 注意到java的数据类型转换都是截尾法,而楼主要保留"小数点后两位有效数字",所以唯一的方法是先将这个数乘上1000,转换成整型数n,判断末位d,若d>=5,则n=n+(10-d),若d<5,则n=n-d,在将n转换成double型,再除以1000,最后在对此数进行格式处理啊 其他的要不是最后不会补零,要不就是.4前面不补零。用#.##不好,我是用DecimalFormat(“0.00”),但就是不会转0.00 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)); }} 谢谢大家!我还有两个50分的帖子还无人过问,1、《jsp编个使服务器探测与某个主机是否通路和进入主机的程序 》http://community.csdn.net/Expert/topic/4134/4134948.xml?temp=.17614382、《关于源代码泄露问题 》http://community.csdn.net/Expert/topic/4114/4114870.xml?temp=.2196619欢迎大家献计! 我明白你的意思,就是货币嘛,给你我写的一段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); } 但是你要记着一定要载入java.util.DecimalFormat这个类! 在NUMBERFORMAT和他的子类中是这样一来规定的如果模是#则遇上0就省略.比如#.## 对于3.00来说,返回的就是3而如果模是0则遇上0就不省.比如0.00对于3.00来说返回3.00所以楼主的这个问题就只要在NUMBERFORMAT实例话的时候传如模比如0.00即可. ^_^ 我再一次感受到csdn上的温暖~~~~!朋友们,我爱你们!!! JAVA中的内存泄露问题,高手进........ 新手,请教一道超简单的问题 请教 一道题啊为作两节课没做出来 java的多态 vs c++的多态 如何计算指定文件中包含的单词数目?? JAVA中String对象的赋值疑问 请问如何遍历一个文件夹里面所有的文件 我是杭州的程序员,失业了,CSDN的朋友帮我找个工作吧。 写数据库连接池的时候保存连接除了用堆(Stack)大家还用什么? 大家见过这种错误吗??反正我是第一次见!! javah工具的使用方法 java中如何实现windows程序中那种点击一个按钮弹出一个目录设置窗口来设置目录?
String dff = df.format(23.22222);
System.out.println(dff);
String str = df.format(4.012354);
df.parse(str)
DecimalFormat df = new DecimalFormat("########.00");
String dff = df.format(23.2);
System.out.println(dff);这次可以了。
我用rs.getString("money")->double型,补零->String型 就又变为23.4 了。
用#.##不好,我是用DecimalFormat(“0.00”),但就是不会转0.00
NumberFormat formatter = NumberFormat.getNumberInstance();
formatter.setMinimumFractionDigits(2);
formatter.setMaximumFractionDigits(2);
System.out.println(formatter.format(0));
}
}
我还有两个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欢迎大家献计!
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);
}
如果模是#则遇上0就省略.比如#.## 对于3.00来说,返回的就是3
而如果模是0则遇上0就不省.比如0.00对于3.00来说返回3.00
所以楼主的这个问题就只要在NUMBERFORMAT实例话的时候传如模比如0.00即可.