java中double型如何控制有效数字输出位数或精度?

double类型无法控制精度,会出现意想不到的结果。sun专门设计了任意精度控制的类Decimal。详细去看API

java中 double 类型只是一个简单类型,是不du能其输出位数及精度是固定的
可以利用其它方法进行位数输出,如:
 

class test{
    public static void main(String[] args) {
        // 1. 使用 String.format() 方法
        double data = 11.8982389283293;
        System.out.println(String.format("%.2f", data));
        // 2. 使用 printf 输出
        System.out.printf("%.2f", data);
        // 3. 使用 DecimalFormat 对象格式化
        DecimalFormat format = new DecimalFormat("#.00");
        System.out.println(format.format(data));
    }

        IntSummaryStatistics collect1 =             
                list.stream().collect(Collectors.summarizingInt(Teacher::getAge));
        String format = String.format("%s{count=%d, sum=%d, min=%d, average=%.2f, max=%d}",
                collect1.getCount(), collect1.getSum(), collect1.getMin(), 
                 collect1.getMax(), collect1.getAverage(), collect1.getMax());
        System.out.println(format);
}

 

你可能感兴趣的:(成长,java)