如何保留double型小数点后两位有效数字,不足补零?

yx580tnt 2005-07-10 08:24:12
如何保留double型小数点后两位有效数字,不足补零? 关键是不足补零
6.23345-->235546.23
0.4-->0.40
...全文
4942 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
yx580tnt 2005-07-16
  • 打赏
  • 举报
回复
^_^ 我再一次感受到csdn上的温暖~~~~!朋友们,我爱你们!!!
TheTongs 2005-07-14
  • 打赏
  • 举报
回复
在NUMBERFORMAT和他的子类中是这样一来规定的
如果模是#则遇上0就省略.比如#.## 对于3.00来说,返回的就是3
而如果模是0则遇上0就不省.比如0.00对于3.00来说返回3.00
所以楼主的这个问题就只要在NUMBERFORMAT实例话的时候传如模比如0.00即可.
yangxp_82 2005-07-14
  • 打赏
  • 举报
回复
但是你要记着一定要载入java.util.DecimalFormat这个类!
Acylas 2005-07-14
  • 打赏
  • 举报
回复
#,##0.00 比如1234.1578格式后为1234.16
比如1234.1格式后为1234.10
#,##00.00 比如4.1578格式后为04.16

0表示该位有值则用该值表示,如果没有值则用0表示,
#表示0表示该位有值则用该值表示,如果没有值则不表示,
lancelobb 2005-07-12
  • 打赏
  • 举报
回复
我明白你的意思,就是货币嘛,给你我写的一段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);

}
yx580tnt 2005-07-12
  • 打赏
  • 举报
回复
谢谢大家!
我还有两个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

欢迎大家献计!
dulang200x 2005-07-12
  • 打赏
  • 举报
回复
观注
yx580tnt 2005-07-12
  • 打赏
  • 举报
回复
很好很好!就是麻烦了点。
yx580tnt 2005-07-11
  • 打赏
  • 举报
回复
怎~~~~么~~~~~~没有人解答?太容易吗?
highsea_004 2005-07-11
  • 打赏
  • 举报
回复
关注
gwang119 2005-07-11
  • 打赏
  • 举报
回复
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));
}
}
yx580tnt 2005-07-11
  • 打赏
  • 举报
回复
其他的要不是最后不会补零,要不就是.4前面不补零。
用#.##不好,我是用DecimalFormat(“0.00”),但就是不会转0.00
dafei0320 2005-07-11
  • 打赏
  • 举报
回复
0当然是0.00了
模具都是#.##了!!
yx580tnt 2005-07-11
  • 打赏
  • 举报
回复
成功了,但是如果值是0的话,怎么变为0.00呢
njwangchuan 2005-07-11
  • 打赏
  • 举报
回复
注意到java的数据类型转换都是截尾法,而楼主要保留"小数点后两位有效数字",所以唯一的方法是先将这个数乘上1000,转换成整型数n,判断末位d,若d>=5,则n=n+(10-d),若d<5,则n=n-d,在将n转换成double型,再除以1000,最后在对此数进行格式处理啊
yx580tnt 2005-07-11
  • 打赏
  • 举报
回复
可我试不出来
我用rs.getString("money")->double型,补零->String型  就又变为23.4 了。
congliu 2005-07-11
  • 打赏
  • 举报
回复
DecimalFormat df = new DecimalFormat("#,##0.00");
shoulders 2005-07-11
  • 打赏
  • 举报
回复
重来
DecimalFormat df = new DecimalFormat("########.00");
String dff = df.format(23.2);
System.out.println(dff);

这次可以了。
Acylas 2005-07-11
  • 打赏
  • 举报
回复
DecimalFormat df = new DecimalFormat("#,##0.00");
String str = df.format(4.012354);
df.parse(str)
shoulders 2005-07-11
  • 打赏
  • 举报
回复
DecimalFormat df = new DecimalFormat("########.##");
String dff = df.format(23.22222);
System.out.println(dff);
加载更多回复(1)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧