Freigeben über


Nicht Elemente einer Zahlen-(NAN)

Der Visual C++-Compiler unterstützt keine Vergleiche von Elementen einer Zahl NAN () in einer IEEE-kompatiblen Weise.Wenn x und y ist NAN nicht NAN:

  • ! (xx= true== )

  • false== ) x(x-==

  • (== falseys > x)

  • (== falseys < x)

NAN-Reihenfolgen Tests immer false zurückgeben: NAN [<, <=, >, >=] [any_number] ist falsch.

Der folgende Code zeigt, wie NANs in Visual C++ nicht in eine Gleitkommazahl erfolgreich verglichen werden kann:

#include <math.h>
#include <stdio.h>
#include <float.h>

int main( void ) {
unsigned long nan[2]={0xffffffff, 0x7fffffff};
double g = *( double* )nan;

if ( g <= 3.0 )
   printf( "g( %g ) <= 3.0\n", g );
else if ( g > 3.0)
   printf( "g( %g ) > 3.0\n", g );
else
   printf( "g( %g ) is NaN\n", g );
}

Siehe auch

Referenz

Lexikalische Konventionen