浮点数越界或者无效-1.#IND000
来源:互联网 发布:模拟退火粒子群算法 编辑:程序博客网 时间:2024/05/22 13:09
float acos(float x)
参数x的范围为-1.0f到1.0f之间,返回值范围在0.0f到3.141592653f之间,值得注意的是:当x超出[-1.0f, 1.0f]这个范围时此函数将返回一个-1.#IND000值,代表无穷小而编译器会不给出任何提示,通常此将会导致程序错误或崩溃,所以以后要注意数学函数的参数范围了.
可以通过以下代码进行调试:
float test = acos(1.0001f)
if (test != test)
{
cout << "错误出现" << endl;
}
昨天遇到的-1.#IND000,问余衍炳师兄,告诉我这是无穷小。但是我想用if(a==-1.#IND000)去判断,编译不过,呵呵 。
现在找到方法了 ,不过方法有点怪,astone指出,b!=b应该是恒为false,但在这个情况下竟然是true
float a=10;
float b=a/0;
if( b > 0.0f ||b != b)
printf("%f",b);
这个可以判断1.#INF000
float a=-10;
float b=a/0;
if( b < 0.0f ||b != b)
printf("%f",b);
这个可以判断-1.#IND000
加b!=b只用于.net 2003,在vC++6.0下不用。
使用类似于pow, exp等等函数时常会产生一个无效数字1.#IND00,在VC下可以通过与一个确定数字比较大小来判断是否产生了无效数字,但这个方法在DEV-CPP下却是行不通的。
其实解决办法很简单,使用 float.h中一个函数_isnan即可:
int _isnan(double x);
当x是一个无效值(NaN, Not a Number) 时,返回非零值
否则返回0.
一般可能是除数为零,使用数组时也经常出现这种情况
- 浮点数越界或者无效-1.#IND000
- 浮点数越界或者无效-1.#IND000
- -1.#IND000
- -1.#IND000 &&图像类型转换
- 浮点数判断为0或者相等
- 1.#QNAN、1.#IND和1.#INF等“无效”浮点数说明及其判断
- 1.#QNAN、1.#IND和1.#INF等“无效”浮点数说明及其判断
- #QNAN、1.#IND和1.#INF等“无效”浮点数说明及其判断
- #QNAN、1.#IND和1.#INF等“无效”浮点数说明及其判断
- float 浮点数的无效值和无限大和无限小
- 如何安全的读入一个整数或者浮点数
- Java判断字符串是否是整数或者浮点数
- input只允许输入数字或者浮点数
- c++如何判断两个浮点数相等或者大小问题
- input只允许输入数字或者浮点数
- 正则表达式 匹配 一个数,或者是整数或者似乎浮点数
- python中浮点数尾部无效0去掉和无效的‘.’号
- 1.浮点数运算误差
- netty的学些 和 netty的资源收藏
- 关于qsort函数
- 【转载】gcc configure: error: Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0
- 产生随机数
- C++常用用法总结
- 浮点数越界或者无效-1.#IND000
- 第十三天、归并排序
- Oracle存储过程创建及调用
- zookeeper3.4.6的单机部署
- 大话里的逻辑和爱情
- css3 transition原理(动画系列二)
- caoliu 官网公众号yesxiaocao 1024 caoliushequ 也是小草
- SublimeTmpl
- C++访问限制:private public protect经典诠释