C/C++程序运行有时候会出现-1.#IND,1.#INF
一般来说是除数为0得出的结果,INF就是infinite,就是无穷大的意思;
使用类似于pow, exp等等函数时常会产生一个无效数字1.#IND00,在VC下可以通过与一个确定数字比较大小来判断是否产生了无效数字,但这个方法在DEV-CPP下却是行不通的。
(1)1.#INF: 数据太大,越界了
(2)-1.#IND: 做除法时除数为0
(3)1.#INF000:正无穷大
(4)-1.#INF000:负无穷大
其实解决办法很简单,使用 float.h中一个函数_isnan即可:
int _isnan(double x);
当x是一个无效值(NaN, Not a Number) 时,返回非零值,否则返回0。