【发布时间】:2018-08-10 13:27:59
【问题描述】:
NaN 通过 NaN - Wikipedia 中描述的“大多数”操作传播。
我想知道 NaN 不传播的操作。例如,我在 C++ 中编码,发现下面的代码打印出1,这不是 NaN。
const double result = std::pow(1, std::numeric_limits<double>::quiet_NaN());
std::cout << result << std::endl;
对于std::powfunction,此行为在std::pow - cppreference.com 中进行了描述。
你能分享其他的例子吗?
【问题讨论】:
-
请注意,维基百科的描述强烈遵循 IEEE754,但 C++ 不强制要求 IEEE754。甚至对浮点类型使用 IEEE754 format 的实现也可能不使用 IEEE754 rules。