9

使用しようとしましprintfたが、予期しないエラーが発生しました。

このコードの欠点は何ですか:

System.out.printf("The date is %d/%d/%d", month,day,year);

month日付とを出力したいのですがdayyearは二重変数です。

4

3 に答える 3

15

Formatterのドキュメントによると、%dは整数値の変換であり、doubleでは機能しません。それらを整数に変換する必要があります。とにかく、なぜ月、日、年を浮動小数点数として表すのですか?を使用し、日付値に適切なフォーマッターDateを使用する方がはるかに良いでしょう。

これらの値にdoubleを使用する必要がある場合は、%fの代わりに使用する必要があります%d

于 2012-12-23T03:53:31.280 に答える
0

Cのsprintfと同様に、文字列は静的メソッドを使用してフォーマットできますString.format

   // Format a string containing a date.
   import java.util.Calendar;
   import java.util.GregorianCalendar;
   import static java.util.Calendar.*;

   Calendar c = new GregorianCalendar(1995, MAY, 23);
   String s = String.format("Duke's Birthday: %1$tm %1$te,%1$tY", c);
   // -> s == "Duke's Birthday: May 23, 1995"
于 2013-06-15T19:17:29.140 に答える
-2

修正されたコード

 System.out.printf("The date is %f/%f/%f", month,day,year);
于 2012-12-23T04:27:35.943 に答える