Operaciones de relación

El valor lógico FALSO se representa por el valor entero cero, y el valor VERDADERO se representa por cualquier valor distinto a cero.

FALSO (0) y VERDADERO (1) son valores de las expresiones que contienen las operaciones de relación o las operaciones lógicas.

Verdadero, si a es igual a b                       a == b;
Verdadero, si a no es igual a b                    a != b;
Verdadero, si a es menor que b                      a < b;
Verdadero, si a es mayor que b                      a > b;
Verdadero, si a es menor o igual a b            a <= b;
Verdadero, si a es mayor o igual a b            a >= b;

No se puede comparar la equivalencia de dos números reales. En mayoría de los casos resulta que dos números aparentemente iguales pueden ser desiguales por la diferencia del valor en el décimoquinto dígito después de la coma. Para una comparación correcta de dos números reales es necesario comparar la diferencia normalizada de estos números con el valor cero.

Ejemplo:

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  %.16f   son iguales",first,third);
     }
  }
// Resultado: 0.3000000000000000  0.2999999999999998   no obstante, son iguales 

Véase también

Prioridades y orden de las operaciones