関係の演算子

論理値の偽( FALSE )は整数のゼロで表されます。一方、論理値の真( TRUE )は任意のゼロ以外の値で表されます。

関係の演算子や論理演算を含む式の値は FALSE( 0)か TRUE(1)です。

a と b が等しければ True      a == b;
a と b が等しくなければ True    a != b;
a が b より小さければ True     a < b;
a が b より大きければ True     a > b;
a が b 以下であれば True      a <= b;
a が b 以上であれば True      a >= b;

2 つの実数 は比較出来ません。一般的に、一見同一である 2 つの数が小数第 15 位の値が異なるために不均等であることがあります。2 つの実数を正しく比較するためには、これらの数の正規化後の差をゼロと比較します。

例:

bool CompareDoubles(double number1,double number2)
 {
  if(NormalizeDouble(number1-number2,8)==0) return(true);
  else return(false);
 }
void OnStart()
 {
  double first=0.3;
  double second=3.0;
  double third=second-2.7;
  if(first!=third)
    {
    if(CompareDoubles(first,third))
        printf("%.16f and %.16f are equal",first,third);
    }
 }
// 結果: 0.3000000000000000  0.2999999999999998   are equal

参照

優先順位のルール