今天让小数位数的保留问题折磨了半天,自己搞定是搞定,但很不理想,上网查找了一些结合自己的保存起来以便后用:
public static void main(String[] args) {
//方法一:
//保留小数位数,并能四舍五入
DecimalFormat de = new DecimalFormat("0.00");
System.out.println(de.format(52.83252));
//方法二:
//最简单的保留两位小数方法,并能四舍五入
double dou = 0.36854;
dou = Math.round(dou*100);
System.out.println(dou/100);
//方法三:
//BigDecimal --des.setScale()方法里的2,表示保留的小数位数
//第二个参数为也可为 ROUND_HALF_UP
//doubleValue() 保证输入的结果为double类型,也可以有intValue()方法
BigDecimal des = new BigDecimal(0.36584);
des = des.setScale(2, BigDecimal.ROUND_HALF_EVEN);
System.out.println(des.doubleValue());
//如果des.setScale()方法里的第二个参数为ROUND_HALF_UP
des = des.setScale(2, BigDecimal.ROUND_HALF_UP);
System.out.println(des.intValue());
//方法四:
NumberFormat forma = NumberFormat.getIntegerInstance();
forma.setMaximumFractionDigits(2);
System.out.println(forma.format(0.6358));
}