Java printf用于求和和平均值

3

这是我所拥有的内容:

  double[] miles = new double [10];

  double milesPerWeek = 26.0 / 10;
  double totalMiles = 0;
  double sum = 0;
  double average = 0;

  System.out.println("Week\tMiles");

  for (int i = 0; i < miles.length; i++){

     miles[i] += milesPerWeek;
     totalMiles += miles[i];

     System.out.printf("Week %d\t%.1f%n", i + 1, totalMiles);
  }
  for (int i = 0; i < miles.length; i++)
  {              
     sum = sum + miles[i];
     average = sum / miles.length;
  }
  System.out.printf("The total of miles run is: %.1f%n" + sum + "\n");

  System.out.printf("The average of miles run is: %.1f%n" + average);

这是在使用求和和平均值时遇到的问题。我无法在不出现错误信息的情况下使用print f来格式化小数位: “跑步里程总计为:Exception in thread "main" java.util.MissingFormatArgumentException: Format specifier '%.1f'”
请指导我如何保留一位小数。
3个回答

4
你需要将值作为参数传递,而不是将它们连接起来:
System.out.printf("The total of miles run is: %.1f%n\n", sum);

System.out.printf("The average of miles run is: %.1f%n", average);

0
System.out.println("Blah %.1f\n", sum);

0
你知道那种“啊哈!”的时刻吗?我刚刚经历了它……在格式化输出时,不应使用加号,而应该使用逗号!修正后的语法:
System.out.printf("The total of miles run is: %.1f%n", sum, "\n");

System.out.printf("The average of miles run is: %.1f%n", average);

1
%n 不是占位符用于替换你自己的行分隔符。它是用于替换操作系统的行分隔符的占位符。因此,在您的printf中添加第二个 "\n" 参数是没有意义的,因为它不会被使用。 - Pshemo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接