0
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ステートメントを取り出してもエラーはありませんでしたが、Javaで使用されるはずの正しい方法でprintfを使用していませんか?

また、私はJavaとEclipseが初めてなので、これらのエラーの意味がわかりません。

だからこれは私が得るアウトプットです

1 2.7182822 7.3890563 403.4287934 26489122129.8434375 13041808783936237000000000000000000000000000000000.0000006 インフィニティ7 インフィニティ8 インフィニティ10

出力は n = 3 までしかありません for ループに問題はありません なぜこれが起こるのですか?

nvm私はそれの何が悪いのかを見ました

4

5 に答える 5

1

である必要がありますSystem.out.printf("%d %f", n, num)。ここlでは無意味です。

さらに、あなたのround100th(num);呼び出しは効果がありません - 数値を小数点以下 2 桁まで出力しようとしていますか? あなたはそれを行うことができます:

System.out.printf("%d %.2f", n, num)
于 2012-10-04T20:04:21.210 に答える
1

String Formatter Conversionsを参照してください%l

于 2012-10-04T20:05:07.277 に答える
0

問題はこの行にあります:

System.out.printf( "%d%lf"、n、num);

%lfは適切ではありません。%1fのことですか?前者には小文字の「L」があり、後者には「1」があることに注意してください。1で試してみると、うまくいくはずです。

于 2012-10-04T20:06:14.017 に答える
0

私はこれについて肯定的ではありませんが、Javaを使用するだけでよいと信じています

System.out.printf(n + " " + 数値)

時間はかかりますが、要チェックです。私が間違っているかどうか教えてください。間違った答えを残したくありません。

于 2012-10-04T20:04:34.683 に答える
0

試す:

System.out.printf("%d %f", n, num);

書式設定については、JavaDocs ですばらしい説明がされています。

于 2012-10-04T20:05:17.817 に答える