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
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
double d = 15.00;
System.out.println(d);//15.0double底层做了处理的,将小数点后面最后一个0保留。其他0去掉。
其实本来也没什么意义的。如果是财务方面的就用BigDecimal吧。。