Java printf中的非法FormatConversionException

Java printf中的非法FormatConversionException,java,printf,Java,Printf,在这个项目中我需要一些帮助。我已经完成了整个计划。我在printf语句中遇到问题,因为每次我运行程序时,都会出现IllegalFormatConversionException错误,即使程序编译得很完美 这是有问题的printf: System.out.printf("%s%20d%10d%10.1f", "Average", categoryAvg, pressureAvg, speedMPHAvg); 代码: import java.util.Scanner; 导入java.io.Fil

在这个项目中我需要一些帮助。我已经完成了整个计划。我在
printf
语句中遇到问题,因为每次我运行程序时,都会出现
IllegalFormatConversionException
错误,即使程序编译得很完美

这是有问题的
printf

System.out.printf("%s%20d%10d%10.1f", "Average", categoryAvg, pressureAvg, speedMPHAvg); 
代码:

import java.util.Scanner;
导入java.io.File;
导入java.io.IOException;
公共级飓风2
{
公共静态void main(字符串[]args)引发IOException
{
int arrayLength=59;
整数[]年=新整数[排列长度];
字符串[]月份=新字符串[arrayLength];
int[]压力=新int[arrayLength];
int[]速度=新的int[arrayLength];
字符串[]名称=新字符串[arrayLength];
double[]车速英里/小时=新的double[arrayLength];
int[]类别=新int[arrayLength];
int c1=0;
int c2=0;
int c3=0;
int c4=0;
int c5=0;
int categoryMin=0;
int categoryMax=0;
int-speedMin=0;
int-speedMax=0;
内压min=0;
内压max=0;
int categorySum=0;
int speedMPHSum=0;
内压sum=0;
双重分类yAvg=0;
双倍速度vg=0;
双重压力avg=0;
文件名=新文件(“hurcata2.txt”);
扫描仪内嵌=新扫描仪(文件名);
int指数=0;
while(infle.hasNext())
{
年份[指数]=infle.nextInt();
月份[索引]=infle.next();
压力[指数]=infle.nextInt();
速度[索引]=infle.nextInt();
name[index]=infle.next();
索引++;
}
infle.close();
对于(索引=0;索引=74和时速[指数]=96和时速[指数]=111和时速[指数]=131和时速[指数]类别最大)
{
类别[索引]=类别最大值;
}
speedMin=速度[指数];
if(速度[索引]速度最大值)
{
速度[指数]=速度最大值;
}
pressureMin=压力[指数];
if(压力[指数]压力最大值)
{
压力[指数]=压力最大值;
}
类别+=类别[索引];
speedMPHSum+=速度英里/小时[指数];
压力sum+=压力[指数];
}
categoryAvg=(双)类别/排列长度;
speedMPHAvg=(双)speedMPHSum/阵列长度;
压力avg=(双)压力sum/排列长度;
System.out.printf(“%40s”,“飓风1980-2006”);
System.out.println();
System.out.println();
系统输出打印F(“%s%10s%10s%10s%10s%10s”、“年份”、“飓风”、“类别”、“压力(mb)”、“风速(mph)”);
System.out.println();
System.out.println(“==========================================================================================================”);
对于(索引=0;索引
printf
中,而不是
double

由于
categoryAvg
pressureAvg
double
,因此对它们使用
f

System.out.printf("%s%20f%10f%10.1f", "Average", categoryAvg, pressureAvg, speedMPHAvg);
同样地,
f
也不是用于
int

因此,由于
speedMax
speedMin
int
,因此您应该在那里使用
d

System.out.printf("%s%20d%10d%10d", "Maximum", categoryMax, pressureMax, speedMax);
System.out.printf("%s%20d%10d%10d", "Minimum", categoryMin, pressureMin, speedMin);

(或适当更改变量的类型)。

哪个
printf
?你有6个。什么错误?给我们堆栈trace.System.out.printf(“%s%20d%10d%10.1f”,“平均值”,categoryAvg,pressureAvg,speedMPHAvg);此语句以及以下错误:java.util.IllegalFormatConversionExceptionSystem.out.printf(“%s%20d%10d%10.1f”,“最大值”,categoryMax,pressureMax,speedMax);System.out.println();系统输出打印F(“%s%20d%10d%10.1f”,“最小”,类别最小,压力最小,速度最小);System.out.println();这些台词是一样的,还是会有所不同呢?汉克斯先生!谢谢你的帮助
System.out.printf("%s%20d%10d%10d", "Maximum", categoryMax, pressureMax, speedMax);
System.out.printf("%s%20d%10d%10d", "Minimum", categoryMin, pressureMin, speedMin);