Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/128.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在C+中检测/捕获-1.#IND+;_C++_Visual Studio 2010_Debugging_Error Handling_Numbers - Fatal编程技术网

C++ 如何在C+中检测/捕获-1.#IND+;

C++ 如何在C+中检测/捕获-1.#IND+;,c++,visual-studio-2010,debugging,error-handling,numbers,C++,Visual Studio 2010,Debugging,Error Handling,Numbers,我已经尝试了所有检测奇数(NaN、QNaN等)的常规技巧,但我似乎无法检测到-1。#IND.如果您能提供任何帮助,我将不胜感激。试试以下方法: 您是否尝试过将数字与自身进行比较: if ( x != x ) assert(!"nan"); 或者干脆 assert(x==x); 你通常的花招是什么 此外,奇数是1,3,5,…,如中所示,与偶数相反。你说的是NaN,我猜。union\u IEEESingle union _IEEESingle { float Float; st

我已经尝试了所有检测奇数(NaN、QNaN等)的常规技巧,但我似乎无法检测到-1。#IND.如果您能提供任何帮助,我将不胜感激。

试试以下方法:


您是否尝试过将数字与自身进行比较:

if ( x != x )
   assert(!"nan");
或者干脆

assert(x==x);
你通常的花招是什么

此外,奇数是1,3,5,…,如中所示,与偶数相反。你说的是NaN,我猜。

union\u IEEESingle
union _IEEESingle
{
   float Float;
   struct
   {
      unsigned int Frac : 23;
      unsigned int Exp  : 8;
      unsigned int Sign : 1;
   } IEEE;
};    

bool isQnan(float in) 
    { 
       return(reinterpret_cast<_IEEESingle*>(&in)->IEEE.Exp == (1u << 8)-1 && 
          reinterpret_cast<_IEEESingle*>(&in)->IEEE.Frac); 
    }
{ 浮动; 结构 { 无符号整数分数:23; 无符号整数表达式:8; 无符号整数符号:1; }IEEE; }; 布尔·伊斯克南(浮入) { 返回(重新解释和输入)->IEEE.Exp==(1u IEEE.Frac); }
也可能重复,请注意,@Cheers and hth.-Alf的答案在标记的副本中是正确的。谢谢-我们可以关闭此副本。我尝试将其与自身进行比较…适用于NaN、QNan和INF…而不是IND…@Luchian-他的意思是奇怪/不正常中的奇怪