java除法 0,在Java中除法结果总是在零(0)?

The function below gets two values from sharedpreferences, weight and height, and I use these to calculate the BMI,

When I print the content of the values I get the values i have entered in the sharedprefs ( which is good) but then when i run a division operation on them, I always get 0 as a result..

Where is the error?

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;

}

解决方案

You're doing integer division.

You need to cast one operand to double.