c++如何检查-1.#IND在数组中

c++ how to check -1.#IND in array

本文关键字:#IND 数组 检查 何检查 c++      更新时间:2023-10-16

我得到了一个浮点数组,它存储了一些由一些函数计算出来的值。但是,当我从数组中检索一个值时,有些值是-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,就会出现这个值。

您可能遇到的其他值是正无穷大和负无穷大。

要过滤掉这些特殊值,可以使用_finitefinitef_fpclass等函数。

检查浮点值是否为有效数字的好方法是使用:std::isnormal()如果数字不正常,可以使用std:: fpclassifier()来确定是哪个错误。