質問: (int) Math.ceil((a+b)/2); System.out.println(ave); } } ``` ### 補足情報(FW/ツールのバージョンなど) Eclipse Java EE IDE for Web Developers. Version: Neon.3 Release (4.6.3) Build id: 20170314-1500
回答: ceilメソッドの引数である「(a+b)/2」のa,b,2が全てint型なので、この計算をするとint型の5となります。(ceilメソッドに渡す前に切り捨てが発生) int型の5をceilメソッドに渡しているので(暗黙の型変換でint→doubleとなる)返り値は5になります。 ceilで切り上げてもらうには「(a+b)/2」の計算をdouble型で行う必要があります。 「(a+b)/2.0」や「(a+b)/(double)2」としましょう。