public class TryMyMath {
public static void main(String args[])
{
double num = Math.E;
printTable(num);
}// end main
public static void printTable(double num){
int n = 1;
for(n = 1;n <= 10; n++)
{
num = Math.pow(num, n);
System.out.printf("%d %lf", n, num);
}
round100th(num);
}
public static double round100th(double num)
{
return Math.round(num*100.)/100.0 ;
} // end round100th
}
我在java中使用printf有这个问题,所以这是我用printf
得到的错误Exception in thread "main" java.util.UnknownFormatConversionException: Conversion = 'l'
at java.util.Formatter$FormatSpecifier.conversion(Unknown Source)
at java.util.Formatter$FormatSpecifier.<init>(Unknown Source)
at java.util.Formatter.parse(Unknown Source)
at java.util.Formatter.format(Unknown Source)
at java.io.PrintStream.format(Unknown Source)
at java.io.PrintStream.printf(Unknown Source)
at TryMyMath.printTable(TryMyMath.java:15)
at TryMyMath.main(TryMyMath.java:7)
当我拿出printf语句时没有任何错误,我是不是以正确的方式使用printf它应该在java中使用?
我也是java和eclipse的新手,所以我不知道这些错误是什么意思。
所以这是我得到的输出
1 2.7182822 7.3890563 403.4287934 26489122129.8434375 13041808783936237000000000000000000000000000000000000.0000006 Infinity7 Infinity8 Infinity9 Infinity10 无穷大
输出直到n = 3我没有看到for循环有什么问题,为什么会发生这种情况?
nvm我看到它有什么问题
答案 0 :(得分:1)
应该是System.out.printf("%d %f", n, num)
。 l
在这里毫无意义。
此外,您的round100th(num);
电话无效 - 您是否尝试将数字打印到两位小数?你可以用:
System.out.printf("%d %.2f", n, num)
答案 1 :(得分:1)
请参阅String Formatter Conversions,没有%l
。
答案 2 :(得分:0)
我对此并不乐观,但我相信java只需要使用
System.out.printf(n +“”+ num)
虽然已经有一段时间了,所以你需要检查一下。请告诉我,如果我错了。我不想留下错误的答案。
答案 3 :(得分:0)
答案 4 :(得分:0)
问题在于这一行:
System.out.printf(“%d%lf”,n,num);
%lf不合适。你的意思是%1f?请注意,前者具有小写“L”而后者具有“1”。尝试使用1,它应该工作。