关于java的double保留几位小数的问题

	Double d = 5.225;
	//以保留两位小数为例(四舍五入方式)
	//法1:BigDecimal (推荐使用,可以设置进位的方式)
	BigDecimal bd = new BigDecimal(d);
	double d1 = bd.setScale(2, RoundingMode.Up).doubleValue();
	//法2:DecimalFormat
	DecimalFormat df = new DecimalFormat("#.00");//会自动四舍五入的
	double d1 = Double.valueOf(df.format(d));
	//法3: String.format() 
	String s = String.format("%.2f", d);//会自动四舍五入
	double d1 = Double.valueOf(s);
	//法4:NumberFormat (缺点是小数前的位数过多,每三位会拼一个逗号,会转换异常)
	NumberFormat nf = NumberFormat.getInstance();
	nf.setMaximumFractionDigits(2);//设最高位数为2
	String s = nf.format(d);
	double d1 = Double.valueOf(s);

你可能感兴趣的:(java,开发语言)