这里不能直接用System.out.println("%.6f",s);
java将print封装成了三个输出格式:
System.out.println(); 输出后换行
System.out.printf(); 输出带指定格式的内容
System.out.print(); 直接打印,不换行
要实现精度控制,需要用第2中格式的输出!
double PI=3.14159265358979323;
double s=(PI*4*4);
BigDecimal bg = new BigDecimal(s);
double f1 = bg.setScale(7, BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println(f1);
DecimalFormat df = new DecimalFormat (".0000000");
System.out.println (df.format (s));
System.out.println (String.format ("%.7f", s));
NumberFormat nf = NumberFormat.getInstance ();
nf.setMaximumFractionDigits (7);
System.out.println (nf.format (s));
System.out.printf("%.6f",s);