Operações de Relação

A booleana FALSE é representada pelo valor zero inteiro, enquanto que a booleana TRUE é representada por qualquer valor não inteiro.

O valor de expressões contendo operações de relação ou operações lógicas é FALSE (0) ou TRUE (1).

True se a é igual a b                        a == b;
True se a não igual a b                      a != b;
True se a é menor que b                      a < b;
True se a não é menor que b                  a > b;
True se a é menor ou igual a b               a <= b;
True se a é maior ou igual a b               a >= b;

A igualdade de dois números reais não pode ser comparada. Na maioria dos casos, dois números aparentemente idênticos podem ser desiguais por causa da diferença de valores na 15 casa decimal. A fim de comparar corretamente dois números reais, compare a diferença normalizada destes números com zero.

Exemplo:

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 e %.16f são iguais",first,third);
     }
  }
// Resultado: 0.3000000000000000  0.2999999999999998   são iguais

Também Veja

Regras de Precedência