c++如何检查-1.#IND在数组中
c++ how to check -1.#IND in array
我得到了一个浮点数组,它存储了一些由一些函数计算出来的值。但是,当我从数组中检索一个值时,有些值是-1。#IND,这是一个浮点错误或其他类型,我猜。
那么这里有一个小问题,我如何使用if语句来检查浮点数数组是否包含-1。#IND值,所以我可以用它做点什么??
谢谢
if(a != a);这只在a是NaN时成立。对了,在数学中还有一个isnan()函数。更多关于isnan()…
-1。#IND是NaN代码(不是数字),因为该值是未定义的/不可表示的。所以你的数值算法在产生NaN值时可能会有问题。检查是否打开了浮点异常,因为NaN可能是由除0错误导致的,并确保在调试模式下运行它,逐步执行并查看它何时、如何以及为什么发生。
不确定是否可以进行直接相等比较,因为表示可以更改,
检查IEEE 754,同时检查你的编译器是否使用IEEE 754浮点数
-1.#IND
看起来像"不定"值,如果你做一些事情,比如尝试计算0/0,就会出现这个值。
您可能遇到的其他值是正无穷大和负无穷大。
要过滤掉这些特殊值,可以使用_finite
、finitef
或_fpclass
等函数。
检查浮点值是否为有效数字的好方法是使用:std::isnormal()如果数字不正常,可以使用std:: fpclassifier()来确定是哪个错误。
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- 将数组的地址分配给变量并删除
- 从C++本机插件更新Vector3数组
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 数组索引的值没有增加
- 将对象数组的引用传递给函数
- 为char数组调整zlib-zpipe
- 2D数组来自文本输入,中间有空格
- std::向量与传递值的动态数组
- 在c++中用vector填充一个简单的动态数组
- 使用strcpy将char数组的元素复制到另一个数组
- 使用指针从C++中的数组中获取最大值
- C++使用整数的压缩数组初始化对象
- 告诉一个 const char 数组,除了编译时 C 样式的字符串外,它不以 '