前提・実現したいこと
ProgateでJavaの基本を勉強中です。その中で、
身長と体重(共にdouble型)からBMIを計算し、Math.round()メソッドを用いて小数点以下を四捨五入してint型を返すメソッドを作っています。
発生している問題・エラーメッセージ
しかし、Math.round()の処理がうまくいかず、エラーとなってしまいます。
どうしてでしょうか?
error: incompatible types: possible lossy conversion from long to int
該当のソースコード
Java
1public static int bmi(double height, double weight){ 2 double bmi = weight/height/height; 3 return Math.round(bmi); 4}
試したこと
戻り値にMath.round()を用いず、
return (int)bmi;
というように小数点以下切捨てにしたら、処理はうまく実行されました。
このことからMath.round()を用いて小数点以下を丸める際に問題があるのではと思いました。
補足情報(FW/ツールのバージョンなど)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/22 08:13
2019/01/13 04:48