java这个if-else语句中有什么错误吗?
当我打印邮件内容时,尽管displaybmi不是<;十九,
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;
}
# 1 楼答案
还要仔细检查你的计算:
如果你的体重以千克为单位,身高以米为单位,这个方法就有效。如果您的体重以磅为单位,身高以英寸为单位,则需要添加换算系数:
Calculate-Your-Body-Mass-Index
# 2 楼答案
体重指数的值是多少?尝试将比较更改为使用
19.0
,以确保没有发生截断。您正在将float
(displaybmi)与int
(19)进行比较,这可能会导致不良行为# 3 楼答案
如果要比较两个浮点数,可以使用
Float.compare(float f1, float f2)
报告说: