如何判断 double/float 变量是否有效 (#IND, #INF)
2013-04-27 10:17
337 查看
C/C++程序运行有时候会出现-1.#IND0, +1.#IND0, +1.#INF0, -1.#INF0.
一般来说是除数为0得出的结果,INF就是infinite,就是无穷大的意思;IND可能表示很小,不确定。
使用类似于pow, exp等等函数时常会产生一个无效数字1.#IND00.
其实解决办法很简单,使用 float.h中一个函数_isnan即可:
int _isnan(double x); //此函数只能判断是否是-1.#IND0, +1.#IND0.
当x是一个无效值(NaN, Not a Number) 时,返回非零值,否则返回0。
float.h中还有应该函数_finite(),可以判断是否是+1.#INF0, -1.#INF0.
_finite returns a nonzero value if its argument x is not infinite; that is, if –INF <x < +INF. It returns 0 if the argument is infinite or a NAN.
一般来说是除数为0得出的结果,INF就是infinite,就是无穷大的意思;IND可能表示很小,不确定。
使用类似于pow, exp等等函数时常会产生一个无效数字1.#IND00.
其实解决办法很简单,使用 float.h中一个函数_isnan即可:
int _isnan(double x); //此函数只能判断是否是-1.#IND0, +1.#IND0.
当x是一个无效值(NaN, Not a Number) 时,返回非零值,否则返回0。
float.h中还有应该函数_finite(),可以判断是否是+1.#INF0, -1.#INF0.
int _finite( double x );
_finite returns a nonzero value if its argument x is not infinite; that is, if –INF <x < +INF. It returns 0 if the argument is infinite or a NAN.
相关文章推荐
- 如何判断一个float/double是不是一个有效的值
- 如何判断一个float/double是不是一个有效的值
- C++ 浮点数(double、float)如何定义NaN、正无穷、负无穷,以及如何判断是否是NaN
- C++ 浮点数(double、float)如何定义NaN、正无穷、负无穷,以及如何判断是否是NaN
- 在shell中如何判断一个变量是否为空
- 【转】shell中如何判断一个变量是否为空
- 判断CStrnig 字符串是否为double类型的变量
- 如何判断某变量是否为数组数据类型?
- 如何判断一个变量是否是数字而不是字符串
- 在 shell 中如何判断一个变量是否为空
- shell中如何判断一个变量是否为空
- ruby技巧如何判断属性和变量是否存在
- C/C++中如何判断一个输入的变量是否和其定义的类型一致
- shell中如何判断一个变量是否为空
- shell 如何判断用户从键盘输入的变量是否为数字
- Python 中如何判断变量是否已经定义
- (论坛答疑点滴)如何判断链接是否有效并且如果有效的话得到源代码
- 在shell中如何判断字符串是否为有效的IP地址【转】
- 用户态程序如何判断一段虚地址空间是否有效
- python中如何判断某个变量是否存在