这一题主要是考察四舍五入,保留小数点后n位
以下是找到的几个保留小数7位的方法
方法一:使用DecimalFormat类
//1.#.00 表示两位小数 #.0000四位小数 以此类推... double d1=3.14159265358979323; DecimalFormat df=new DecimalFormat("#.0000000"); String dd1=df.format(d1); //返回的是一个String类型的值 System.out.println(Double.parseDouble(dd1));//结果是四舍五入3.1415926
方法二:使用BigDecimal类的setScale方法
double d2=3.14159265358979323; BigDecimal bd=new BigDecimal(d2); double dd2=bd.setScale(7,BigDecimal.ROUND_HALF_UP).doubleValue();//参数:ROUND_HALF_UP--四舍五入 System.out.println(dd2);
方法三:使用setMaximumFractionDigits方法
//3.结果也是四舍五入 double d3=3.14159265358979323; NumberFormat nf=NumberFormat.getNumberInstance(); nf.setMaximumFractionDigits(7);//设置要保留的数位 String s=nf.format(d3); System.out.println(s);
方法四:通过类型转换(不能四舍五入)
//5 先*100转成int再除以100.0(是100的小数类型),同理 3位的话就是1000 double d5=3.14159265358979323; d5=((int)(d5*10000000))/10000000.0; System.out.println(d5); //不能四舍五入 3.1415926
方法五:利用Math.round()实现
//round(double a) 返回最接近参数的 long。 //round(float a) 返回最接近参数的 int。 double d5=3.14159265358979323; double dd5=Math.round(d5*10000000); double dd5=d5/10000000;//保留2位 就是*100 ,再/100 System.out.println(dd5); //结果是四舍五入
原文地址:https://www.cnblogs.com/Lucky-2-child/p/8358126.html
时间: 2024-10-09 15:46:10