检查复数是否有NaN

dag*_*gur 5 c++ std borland-c++

我试图检查一个std::complex由傅里叶变换(使用http://fftw.org/)的数字是否包含NaN真实或图像部分的数字.

我正在使用Borland C++,所以我无法访问std::isnan.我试图NaN通过比较它来检查数字是否与自身相符:

(n.imag() != n.imag())
Run Code Online (Sandbox Code Playgroud)

但是,只要我调用n.imag()or std::imag(n),我就会得到"浮点无效操作".

有没有办法验证一个std::complex是好的; 如果它包含NaN

dag*_*gur 0

我发现 Borland 有自己的数学库。因此,如果您想避免浮点错误,请使用 Borlands Math 中的 IsNan。

http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/Math_IsNan@Double.html