除零以外的任何数字都会得到-1.#IND

Will a division by any number other than zero give -1.#IND

假设我正在评估 a / b,其中 ab 都是浮点类型。

如果 b 为零则答案为 -1。#IND.

是否有 b(和 a)的任何其他值会给我 -1.#IND,或者正在检查非零 b 是否足够避免得到这个结果?

可能不相关,但我正在用 C++ 编码。

检查 b != 0 并且 a 和 b 都不必是 NaN or Infinite。那么你的师就会出那些错误。但是你仍然会遇到精度问题。

从 C++11 开始,您可以自信地执行计算,使用类似

的方法

std::isnan(x = a / b);

C++11 之前的版本,您可以将结果与自身进行比较,

bool is_nan(double x)
{
    return x != x; 
}

但是如果您的编译器不使用 IEEE 浮点数(C++ 标准不坚持这一点),那可能会失败。如果在打开浮点优化的情况下编译,它也可能会失败。