如何检测-nan(ind)或inf / -inf值

时间:2016-07-01 17:46:06

标签: c++

使用C ++在visual studio上编写一个小型控制台程序

我得到的值如-nan(ind), - inf,inf 我怎么能发现它们? 我搜索了一会儿,看到了isinf,isnan

以这种格式使用它们

if(isinf(myvariable))
   //no solution
else
   //print solution

但它似乎不起作用。每次都有相同的结果。

如果它的inf我得到0结果。 如果它不是inf我得到0结果。

也许我使用了错误的语法?

2 个答案:

答案 0 :(得分:-1)

我尝试了以下代码:

#include <cmath>
#include <iostream>
using namespace std;

int main(){
    cout << isinf(0.0) << endl;
    cout << isinf(1.0/0.0) << endl;
    float f = 0.0;
    cout << isinf(f) << endl;
    f = 1.0/0.0;
    cout << isinf(f) << endl;
    int i = 0.0;
    cout << isinf(i) << endl;
    i = 1.0/0.0;
    cout << isinf(i) << endl;
}

它返回了

0
1
0
1
0
0

因此对于浮点运行正常,因为它没有(当然)。 请检查变量的类型。语法是正确的。

答案 1 :(得分:-1)

由于您使用year[i]标记了问题并且使用C++对其进行了标记,我建议使用std::isnan()std::isinf()