• 締切済み

printfの%fにおいて教本どおりなのにエラーが出ます

本に書いてある通り、 ------------------------------------------------------------------ public class BreakTest { /** * @param args */ public static void main(String[] args) { int day = 1; double value = 1500; double rate = 1.05; System.out.println(day+"日目"); System.out.println("株価:"+value+"円"); System.out.println("上昇率:"+rate); while(value < 3000){ day++; value = value*rate; if(day >= 10){ break; } } System.out.println(day+"日目に"); System.out.printf("株価:%f円", value); } } ------------------------------------------------------------------ とプログラミングしたのに最後の文「System.out.printf("株価:%f円", value); 」 でエラーが出ます。エラーの内容は下記の通りです。 ------------------------------------------------------------------ Exception in thread "main" java.lang.Error: コンパイル問題が未解決です。 型 PrintStream のメソッド printf(String, Object[]) は引数 (String, double) に適用できません。 at BreakTest.main(BreakTest.java:24) ------------------------------------------------------------------ 何が間違っているのでしょうか?

みんなの回答

  • don_go
  • ベストアンサー率31% (336/1059)
回答No.2

J2SE 5.0の新機能 第4回 書式付き入出力機能(1)――Javaのprintf http://www.itarchitect.jp/technology_and_programming/-/21082.html

noname#45426
質問者

お礼

ありがとうございました。

すると、全ての回答が全文表示されます。
noname#49664
noname#49664
回答No.1

コピーアンドペーストして動かしてみましたが、問題なく動きました。ソースコードに間違いはなさそうですね。 お使いのJDKのバージョンはいくつでしょうか。5.0以降ではdoubleは自動的にDoubleに変換されますのでこのリストで正常に動くはずです。JDKが古いとか、あるいはコンパイル時のソースコードレベルが古く設定されているということはないでしょうか。JDKと、お使いの開発環境でのコンパイルに関する設定などを確認してみてはいかがでしょう。

noname#45426
質問者

お礼

Sunのサイトで、 Windows Offline Installation, Multi-language jdk-6u3-windows-i586-p.exe をDL、インストールして、Eclipseの設定>Java>コンパイラー>コンパイラー準拠レベル の値を1.4から6.0にしたらエラーが消えました。 頂いた回答から推測しただけで何が何やらよくわかりません。 とりあえず先に進むことができます。ありがとうございました。

すると、全ての回答が全文表示されます。

専門家に質問してみよう