質問: (sum / max) * 100; //得点率の処理 System.out.println("テストの合計点は" + sum + "点" ); System.out.println("テストの平均点は" + avr + "点" ); System.out.println("テストの得点率は" + per + "%" ); } } ``` ### 試したこと 割る数の変数maxの計算がおかしくなっていないか、初期化後に表示してみて値が間違っていないことを確認(今回は100) int型からdoubleへ変更 得点率の式の見直し ### 補足情報(言語/FW/ツール等のバージョンなど) 言語java8 実行環境windous8.1付属のコマンドプロンプト
回答: 得点率計算時にint同士の割り算があります。これは整数の商になるので、割る数が割られる数より大きければ商は0になります。その後でdoubleにキャストしても0.0のままです。 回避するためには割る前にdoubleにキャストする必要があります。