共用方式為


非數字 (NAN) 項目

Visual C++ 編譯器支援以 IEEE 標準的方式進行非數字 (NAN) 項目的比較。 如果 x 為 NAN,且 y 不是 NAN:

  • (x != x) == true

  • (x == x) == false

  • (y > x) == false

  • (y < x) == false

NaN 排序測試永遠會傳回 false:NAN [<, <=, >, >=] [any_number] 將會是 false。

下列程式碼顯示為什麼在 Visual C++ 中無法順利比較 NAN 與浮點數值:

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

請參閱

參考

語彙慣例