当我打印消息内容时,它总是给我“underweight”,尽管 displaybmi 不是 <19
public String BMImessage(){
SharedPreferences customSharedPreference = getSharedPreferences(
"myCustomSharedPrefs", Activity.MODE_PRIVATE);
String Height = customSharedPreference.getString("heightpref", "");
String Weight = customSharedPreference.getString("weightpref", "");
float weight = Float.valueOf(Weight);
float height = Float.valueOf(Height);
float displaybmi = weight/(height*height);
if (displaybmi <19)
message = "Underweight" ;
else if (displaybmi >=19 && displaybmi <=25)
message = "Desirable Weight";
else if (displaybmi >=26 && displaybmi <=29)
message = "Overweight" ;
else if (displaybmi >=30 && displaybmi <=40)
message = "Obese";
else if (displaybmi >40)
message = "Extremely Obese" ;
return message;
}
最佳答案
displaybmi 的值是什么?尝试将比较更改为使用 19.0
以确保不会发生截断。您正在将 float
(displaybmi) 与 int
(19) 进行比较,这可能会导致意外行为。
关于java - 这个 if else 语句有问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10455984/