如果您的系统符合 IEEE-754,则 float 能够表示无穷大和 NaN。否则,您可以使用<numeric_limits>来检查是否是这种情况。双 NaN 的有效负载不一定可以由浮点 NaN 表示。
可能不支持 NaN 有效负载,因为这是 IEEE-754 中的“可选”功能(应该提供,而不是应提供)。例如,当在 GPU 上运行 CUDA 时,双精度硬件支持 NaN 有效负载,而单精度硬件则生成单个规范 NaN (‘0x7fffffff’)。但在“double”到“float”的转换中,NaN 仍然是 NaN。 (8认同)