比较浮点值是否在java / android中的特定范围内

时间:2012-12-28 11:38:43

标签: java android

我的代码中有浮点值。

我希望使用多个if else语句来检查它是否在(0,0.5)或(0.5,1)或(1.0,1.5)或(1.5,2.0)范围内。请为我提供一种方法来实现这一目标。

早些时候我想过,我可以得到浮点数的确切值。所以,我使用下面提到的代码。但后来我意识到对浮点变量使用==子句是不明智的。所以,现在我需要检查变量值是否在特定范围内。

float ratings=appCur.getFloat(appCur.getColumnIndexOrThrow(DbAdapter.KEY_ROWID));


            if(ratings==0){
                ivRate.setImageResource(R.drawable.star0);
            }
            else if(ratings==0.5){
                ivRate.setImageResource(R.drawable.star0_haf);
            }
            else if(ratings==1){
                ivRate.setImageResource(R.drawable.star1);
            }
            else if(ratings==1.5){
                ivRate.setImageResource(R.drawable.star1_haf);
            }
            else if(ratings==2){
                ivRate.setImageResource(R.drawable.star2);
            }

2 个答案:

答案 0 :(得分:2)

这样吗?

  float n;

...

  if (n<0.5f)  {  // first condition
  } else if (n<1f) { // second condition
  } else if (n<1.5f) { // and so on...
  }

答案 1 :(得分:1)

    float x = ...
    if (x >= 0.0F && x < 0.5F) {
        // between 0.0 (inclusive) and 0.5 (exclusive)
    } else if (x >= 0.5F && x < 1.0F) {
        // between 0.5 (inclusive) and 1.0 (exclusive)
    } else if (x >= 1.0F && x < 1.5F) {
        // between 1.0 (inclusive) and 1.5 (exclusive)
    } else if (x >= 1.5F && x <= 2.0F) {
        // between 1.5 (inclusive) and 2.0 (inclusive)
    } else {
        // out of range
    }