文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>vc6下判断一个浮点数是否为NAN(INF)

vc6下判断一个浮点数是否为NAN(INF)

时间:2011-03-10  来源:可可西

NAN是指not a number。

浮点数在进行除零操作之后,就会变成NAN(INF)。

可以使用下列函数来判断该值是否为NAN(INF)。

库函数:int _isnan(double);  

    int _finite(double);//vc下使用该函数

//若传入的double值无效,函数返回0. 需要包含库文件<float.h>

也可写自定义函数来进行判断(vc下不行)

1 bool is_nan(double dVal)
2 {
3   if (dVal==dVal)
4     return false;
5
6   return true;
7 }

在vc6下该无效值为1.#INF000000000

 不同的编译器和库,这个值存在差异。

这个差异可以使用c++标准库来屏蔽。如下代码:

#include <limits>

bool is_nan(double dVal)
{
  
double dNan = std::numeric_limits<double>::quiet_NaN();
  
if (dVal==dNan)
    
return true;

  
return false;
}

在boost中可使用下列函数来判断

#include <boost/math/special_functions/fpclassify.hpp>

template
<class T> bool isfinite(T z);
template
<class T> bool isinf(T t);
template
<class T> bool isnan(T t);
template
<class T> bool isnormal(T t);


相关阅读 更多 +
排行榜 更多 +
别惹神枪手安卓版

别惹神枪手安卓版

冒险解谜 下载
坦克战争世界

坦克战争世界

模拟经营 下载
丛林反击战

丛林反击战

飞行射击 下载