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);
}