public static void main(String[] args){
//double 型数据的小数点控制输出
double a=1113.141592653;
DecimalFormat formatter1=new DecimalFormat("#.000000");
System.out.println(formatter1.format(a));
//BigDecimal型数据的小数点控制输出
String b="1113.141592653";
//方法1
BigDecimal bd1=new BigDecimal(b);
DecimalFormat formatter2=new DecimalFormat("#.000000");
System.out.println(formatter2.format(bd1.doubleValue()));
//方法2, BigDecimal中的setScale方法的第一个参数就
//是我们要指定的精度位数,这里我设为6位小数,但记住,如果
//舍入后的结果后面几位小数是0,则会被省略,就是说0没被输出,详见后面的测试
BigDecimal bd2=new BigDecimal(b);
System.out.println(bd2.setScale(6,BigDecimal.ROUND_HALF_UP).doubleValue());
//测试
System.out.println();
System.out.println("以下为测试:");
BigDecimal b0=new BigDecimal("1.00000000");
System.out.println(b0.setScale(6,BigDecimal.ROUND_HALF_UP).doubleValue());
BigDecimal b1=new BigDecimal("1.00000010");
System.out.println(b1.setScale(6,BigDecimal.ROUND_HALF_UP).doubleValue());
BigDecimal b2=new BigDecimal("1.00000020");
System.out.println(b2.setScale(6,BigDecimal.ROUND_HALF_UP).doubleValue());
BigDecimal b3=new BigDecimal("1.00000030");
System.out.println(b3.setScale(6,BigDecimal.ROUND_HALF_UP).doubleValue());
BigDecimal b4=new BigDecimal("1.00000040");
System.out.println(b4.setScale(6,BigDecimal.ROUND_HALF_UP).doubleValue());
BigDecimal b5=new BigDecimal("1.00000050");
System.out.println(b5.setScale(6,BigDecimal.ROUND_HALF_UP).doubleValue());
BigDecimal b6=new BigDecimal("1.00000060");
System.out.println(b6.setScale(6,BigDecimal.ROUND_HALF_UP).doubleValue());
BigDecimal b7=new BigDecimal("1.00000070");
System.out.println(b7.setScale(6,BigDecimal.ROUND_HALF_UP).doubleValue());
BigDecimal b8=new BigDecimal("1.00000080");
System.out.println(b8.setScale(6,BigDecimal.ROUND_HALF_UP).doubleValue());
BigDecimal b9=new BigDecimal("1.00000090");
System.out.println(b9.setScale(6,BigDecimal.ROUND_HALF_UP).doubleValue());
/*输出结果如下:
1113.141593
1113.141593
1113.141593
以下为测试:
1.0
1.0
1.0
1.0
1.0
1.000001
1.000001
1.000001
1.000001
1.000001
*/
}
温馨提示:答案为网友推荐,仅供参考