数学“pow”函数返回 -1.#IND。 -1.#IND 是什么类型的错误值?如何检测 if 语句中的错误?
最佳答案
-1.#IND
是 NaN 的文本表示在 Windows 上。
您可以使用这个小函数检查浮点值是否为 NaN:
// NaN never compares equal, not even to itself
bool is_nan(double d){ return d != d; }
(正如@chris 指出的那样,如果你有一个 C++11 兼容的标准库,你会在 std::isnan
中得到 <cmath>
。)
在正常的程序流程中,只要您对数学输入进行完整性检查,就不必担心 NaN。当然,你也可以走另一条路,只做你的数学计算,然后检查 NaN。 :)
关于c++ - -1.#IND 是哪种 C++ 常量/宏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12752991/