-6

コードに float 値があります。

複数の if else ステートメントを使用して、(0,0.5) または (0.5,1) または (1.0,1.5) または (1.5,2.0) の範囲内にあるかどうかを確認したいと考えています。これを達成する方法を提案してください。

以前は、 float の正確な値を取得できると思っていました。そのため、以下のコードを使用していました。しかし、フロート変数に == 句を使用するのは賢明ではないことに気付きました。そのため、変数の値が特定の範囲内にあるかどうかを確認する必要があります。

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);
            }
4

2 に答える 2

2

この上?

  float n;

...

  if (n<0.5f)  {  // first condition
  } else if (n<1f) { // second condition
  } else if (n<1.5f) { // and so on...
  }
于 2012-12-28T11:42:48.643 に答える
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
    }
于 2012-12-28T11:45:48.833 に答える