Sdílet prostřednictvím


Položky, které nejsou číslo (NAN).

Kompilátor jazyka Visual C++ podporuje porovnání položek není číslo (NAN) způsobem kompatibilním se standardy IEEE.Pokud má proměnná x hodnotu NAN a proměnná y nemá hodnotu NAN:

  • (x != x) == true

  • (x == x) == false

  • (y > x) == false

  • (y < x) == false

Testy řazení NAN vždy vrátí hodnotu false: NAN [<, <=, >, >=] [jakékoli_číslo] bude mít hodnotu false.

Následující kód ukazuje, jak hodnoty NAN v jazyce Visual C++ nelze úspěšně srovnávat s čísly s plovoucí desetinnou čárkou:

#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 );
}

Viz také

Referenční dokumentace

Lexikální pravidla