前提・実現したいこと
averageメソッドにdouble型の引数を3つ受け渡し、平均を求め値を返し結果を表示。
という内容なのですが、その中での多分、キャスト変更でエラーが出てしまいます。。
色々試しましたが解決できないためご教授願います
キーボード入力で
56.7
42.8
21.9
結果
40.46666666666667
発生している問題・エラーメッセージ
Exception in thread "main" java.lang.NumberFormatException: empty String at java.base/jdk.internal.math.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1842) at java.base/jdk.internal.math.FloatingDecimal.parseDouble(FloatingDecimal.java:110) at java.base/java.lang.Double.parseDouble(Double.java:543) at Round3.Sample_4.average(Sample_4.java:30) at Round3.Sample_4.main(Sample_4.java:13)
該当のソースコード
java
1package Round3; 2 3import java.io.BufferedReader; 4import java.io.IOException; 5import java.io.InputStreamReader; 6 7public class Sample_4 { 8 9 10 11 12 public static void main(String[] args) { 13 average(0, 0, 0); 14 15 16 17 } 18 19 20 public static void average(double a,double b,double c) { 21 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 22 String x; 23 double sum = 0; 24 double y = 0; 25 double r = 0; 26 try { 27 for(int i = 0; i < 4 ; i++) { 28 x = br.readLine(); 29 y = Double.parseDouble(x); 30 r += y; 31 } 32 sum = r / 3; 33 System.out.println(sum); 34 35 36 }catch (IOException e) { 37 System.out.println(e); 38 39 40 } 41 42 43 } 44 45 46} 47
試したこと
y = Double.parseDouble(x);が上手くいっていないように感じたので
String→int→doubleという順番で型変更など試してみましたがなおりませんでした。
double型がダメなのかな?とも思い一旦int型で出力してもエラーが出ました。
どこか前提条件が間違っているのでしょうか?
初心者なのでできればコード付きでサポートして頂きたいです。
補足情報(FW/ツールのバージョンなど)
mac eclips
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。