以下の関数は、sharedpreferencesから2つの値、weightとheightを取得し、これらを使用してBMIを計算します。値の内容を出力すると、sharedprefsに入力した値が取得されます(これは適切です)が、実行するとそれらの除算演算では、結果として常に0が返されます。エラーはどこにありますか?
public int computeBMI(){
SharedPreferences customSharedPreference = getSharedPreferences(
"myCustomSharedPrefs", Activity.MODE_PRIVATE);
String Height = customSharedPreference.getString("heightpref", "");
String Weight = customSharedPreference.getString("weightpref", "");
int weight = Integer.parseInt(Weight);
int height = Integer.parseInt(Height);
Toast.makeText(CalculationsActivity.this, Height+" "+ Weight , Toast.LENGTH_LONG).show();
int bmi = weight/(height*height);
return bmi;
}
あなたがやっている整数除算。
1つのオペランドをdouble
にキャストする必要があります。
bmi
は整数だからです。 bmi
またはWeight, Height
を浮動小数点数として宣言します。除算で整数を使用すると、整数除算が得られます。ダブルス/フロートを使用すると、浮動小数点除算が得られます