0

与えられた:

public class LineUp {
    public static void main(String[] args) {
        double d = 12.345;
        // insert code here
    }
}

4行目に挿入されたどのコードフラグメントが出力を生成します| 12.345|か?

A. System.out.printf("|%7d| \n", d);
B. System.out.printf("|%7f| \n", d);
C. System.out.printf("|%3.7d| \n", d);
D. System.out.printf("|%3.7f| \n", d);
E. System.out.printf("|%7.3d| \n", d);
F. System.out.printf("|%7.3f| \n", d);
Answer: F

printfステートメントの解釈は何ですか、なぜ|%7d | あげてるよillegalFormatConversionException ?

ありがとう

4

3 に答える 3

5

dはdoubleであり、10進整数としてフォーマットできないためです。浮動小数点変数の場合、認識していることを示すための明示的なキャストなしでは、「d」フォーマット記述子を使用できません。精度が低下する可能性があります。

于 2011-05-02T17:12:32.923 に答える
3

%dは整数をフォーマットするためです。

ドキュメントから:

'd'     integral    The result is formatted as a decimal integer 
于 2011-05-02T17:14:47.020 に答える
2

Formatterクラスのメソッドformat()は、次の形式のフォーマット文字列を取ります。

%[argument_index$][flags][width][.precision]conversion

System.out.printnf()同じ引数を使用する便利なメソッドです。

つまり、7のaを示し%7d、そのうちのaは整数型用です。この例では、渡される値は、整数型としてフォーマットできないaです。[width][conversion]ddouble

于 2011-05-02T17:15:37.687 に答える