日期:2014-05-20  浏览次数:20770 次

java 四舍六入五成双
各位大虾们,请教一个问题:
double f2=0.795
NumberFormat nfFormat = NumberFormat.getInstance();
nfFormat.setMaximumFractionDigits(2);
analyData=nfFormat.format(f2);

最后得到的analyData是0.8,我希望最后的一位小数0也能保留,就是要结果为0.80,应该怎么改?
------解决方案--------------------
用BigDecimal和DecimalFormat 都行吧
	double f2=0.795;
BigDecimal bg = new BigDecimal(f2);  
System.out.println(bg.setScale(2, BigDecimal.ROUND_HALF_UP)); 

------解决方案--------------------
new DecimalFormat("0.00").format(0.795)

------解决方案--------------------
加一行代码
nfFormat.setMinimumFractionDigits(2);

另:楼主的变量命名有待规范。要么是nf,要么numberFormat,或者nFormat为好。
也许楼主自有道理,我的意见仅供参考。