1 // 一个浮点数是否有效,首先要看其是否是一个数字(是:_isnan为0),其次还要看其没有超出表示范围(是:_finite为1)
2 // 注意_finite是有限的意思
3 #include <float.h>
4 CString strOut;
5 float f;
6 int nan, finite;
7
8 f = 3;
9 nan= _isnan(f);// 0
10 finite = _finite(f);// 1
11
12 unsigned int cc = 0xFF800000;
13 memcpy(&f, &cc, sizeof(f));
14 nan= _isnan(f);// 0
15 finite = _finite(f);// 0
16 strOut.Format("f=%f",f);//-1.#INF00
17
18 unsigned int ccc = 0xFFFFFFFF;
19 memcpy(&f, &ccc, sizeof(f));
20 nan= _isnan(f);// 1
21 finite = _finite(f);// 0
22 strOut.Format("f=%f",f);//-1.#QNAN0
补:C++中是
#include <math.h>
isnan
isfinite