遥感图像处理中NaN值问题
来源:http://blog.csdn.net/kupe87826/article/details/8306780
参考:http://stackoverflow.com/questions/4744437/testing-if-float-value-is-nan
http://stackoverflow.com/questions/570669/checking-if-a-double-or-float-is-nan-in-c
环境:vs2010,系统win7
遥感图像处理时,发现返回值是1.#IND000000000000,一头雾水。上网查了一下原来是NaN值,与浮点数的存储格式不一致,所以读不出来值。
解决方法:
1、
if (x!= x){// x is NaN}(这个没测试过,可以试试)
2、
使用vc提供的_isnan()函数(这个应该没问题)
3、
但是如何跨平台呢?我想到boost应该会有吧,果然有!
#include <boost/math/special_functions/fpclassify.hpp>
if(((boost::math::isnan)(xval))
{
//x is NaN
}