Vergleichsoperationen

Logischer Wert FALSCH wird von Null-Wert dargestellt, und der Wert RICHTIG wird von jedem Nichtnull-Wert dargestellt.

Der Wert von Ausdrücken, die Vergleichsoperationen oder logische Operationen enthalten, sind  FALSCH(0) oder RICHTIG(1).

Richtig, wenn a gleich b                       a == b;
Richtig, wenn a ungleich b                     a != b;
Richtig, wenn a kleiner als b                  a < b;
Richtig, wenn a groesser als b                 a > b;
Richtig, wenn a kleiner als oder b             a <= b;
Richtig, wenn a groesser als oder gleich b     a >= b;

Man kann nicht zwei Realzahlen vergleichen. In meisten Faellen können zwei annehmlich gleiche Zahlen nicht gleich sein wegen des Unterschiedes im 15. Zeichen nach dem Komma. Für korrekten Vergleich der zwei Realzahlen muss man normalisierte Differenz dieser Zahlen mit dem Nullwert vergleichen.  

Beispiel:

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   dennoch sind sie gleich ",first,third);
     }
  }
// Ergebnis: 0.3000000000000000  0.2999999999999998   dennoch gleich  

Sehen Sie auch

Prioritaeten und Operationsordnung