使用しようとしましprintfたが、予期しないエラーが発生しました。
このコードの欠点は何ですか:
System.out.printf("The date is %d/%d/%d", month,day,year);
month日付とを出力したいのですがday、yearは二重変数です。
使用しようとしましprintfたが、予期しないエラーが発生しました。
このコードの欠点は何ですか:
System.out.printf("The date is %d/%d/%d", month,day,year);
month日付とを出力したいのですがday、yearは二重変数です。
Formatterのドキュメントによると、%dは整数値の変換であり、doubleでは機能しません。それらを整数に変換する必要があります。とにかく、なぜ月、日、年を浮動小数点数として表すのですか?を使用し、日付値に適切なフォーマッターDateを使用する方がはるかに良いでしょう。
これらの値にdoubleを使用する必要がある場合は、%fの代わりに使用する必要があります%d。
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"
修正されたコード
System.out.printf("The date is %f/%f/%f", month,day,year);