关于java double类型的小数点位数问题

shenglu725 2012-12-05 11:19:57
double rate = 0.15d;
BigDecimal bd=new BigDecimal(rate*100);
bd=bd.setScale(2, BigDecimal.ROUND_HALF_UP);
rate = bd.doubleValue();
System.out.println(rate); //输出15.0
double ddd= 15.00d;
System.out.println(ddd); //输出15.0
DecimalFormat df = new DecimalFormat("#.00");
System.out.println(df.format(ddd)); //输出15.00
System.out.println(Double.parseDouble(df.format(ddd)));//输出15.0
如上代码,我想要转成double类型后输出15.00,而不是输出15.0,
求解,为什么会输出15.0而不是15.00
...全文
153 1 打赏 收藏 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
达达KZT 2012-12-05
  • 打赏
  • 举报
回复

		double d = 15.00;
		System.out.println(d);//15.0

double底层做了处理的,将小数点后面最后一个0保留。其他0去掉。 其实本来也没什么意义的。如果是财务方面的就用BigDecimal吧。。

62,620

社区成员

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

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