我只是一个初学者,任何帮助都会非常苛刻。谢谢你的时间。
Jgrasp给了我这些错误:
线程“main”中的异常java.util.IllegalFormatConversionException: d!= java.lang.Doubleat java.util.Formatter中的$ FormatSpecifier.failConversion(Formatter.java:3999) 在 java.util.Formatter中的$ FormatSpecifier.printInteger(Formatter.java:2709) 在java.util.Formatter $ FormatSpecifier.print(Formatter.java:2661)at java.util.Formatter.format(Formatter.java:2433)at java.io.PrintStream.format(PrintStream.java:920)at java.io.PrintStream.printf(PrintStream.java:821)at TempTable.main(TempTable.java:25) -
我的代码
public class TempTable
{
public static void main(String[] args)
{
double cdeg;
double fdeg;
System.out.println("Fahrenheit"+"\t"+"Celsius");
System.out.println("-----------------------");
for ( cdeg = 0; cdeg <= 20; cdeg++)
{
fdeg = 1.8 * cdeg + 32;
System.out.printf( " %3d C = %5.1f F\n", cdeg, fdeg );
}
}
}
答案 0 :(得分:3)
正如堆栈跟踪告诉你的那样:
d != java.lang.Double
和
printInteger(Formatter.java:2709)
您使用的是d
格式说明符,但您尝试格式化double
。所以要么将double转换为int:
System.out.printf( " %3d C = %5.1f F\n", (int) cdeg, fdeg );
或使用浮点格式说明符:
System.out.printf( " %3f C = %5.1f F\n", cdeg, fdeg );
或强烈建议,为您的循环计数器使用int
,而不是double
。