我在本地主机中有一个表,其中我最初将所有项目的Rating(//列名)值设置为0。我想运行一个循环。但是,尽管更新了in列,它还是运行else循环。
if(String.valueOf(StrRating).equals("0")){
params.put("ratingPoint",String.valueOf(average));
//if condition doesn't work.
}
else {
float total2 = 0;
total2 += StrRating;
total2 += average;
float finalAverage = total2 / 2;
Toast.makeText(Survey.this,String.valueOf(StrRating),Toast.LENGTH_SHORT).show();
params.put("ratingPoint",String.valueOf(finalAverage));
}
0是一个数字。你正在比较一个字符串和一个数字。这永远不会为真,因为Java在这里不会做任何隐式转换,只需注意一个是字符串,另一个是数字,因此永远不会相等。你是说……吗?
if(String.valueOf(StrRating).equals("0")){ // compare StrRating to String "0"
或者……
if(Integer.valueOf(StrRating).equals(0)){ // parse StrRating into integer, then compare to int
?