Partager via


Pas éléments de (NAN) d'un nombre

Le compilateur Visual C++ prend en charge les comparaisons pas d'éléments (NAN) d'un nombre de façon IEEE-conforme.si x est numérique et y n'est pas numérique :

  • (x ! = x== *)*true

  • (== falsede ==xx)

  • (== falsedey > x)

  • (== falsedey < x)

NAN le classement des tests retournent toujours false : NAN [<, <=, >, >=] []any_numbersera false.

Le code suivant montre comment NANs dans Visual C++ ne peut pas être comparé avec succès en nombre à virgule flottante :

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

Voir aussi

Référence

Conventions lexicales