转换到双精度和浮点数是否保留无穷大和NaN?

当施放双无穷大时,反之亦然,它仍然是无穷大吗?和 NaN 一样吗?

回答

任何浮点数转换为双精度数可以保证保留该值。如果原始值可表示为浮点数,则将双精度数转换为浮点数可以保证保留该值。

如果您的系统符合 IEEE-754,则 float 能够表示无穷大和 NaN。否则,您可以使用<numeric_limits>来检查是否是这种情况。双 NaN 的有效负载不一定可以由浮点 NaN 表示。

  • There may be no support for NaN payloads, because that is an *optional* feature in IEEE-754 (a should-provision, not a shall-provision). For example, when running CUDA on a GPU, the double-precision hardware supports NaN payloads, while single-precision hardware produces a single canonical NaN (`0x7fffffff`). But in a `double` to `float` conversion, a NaN stays NaN.

以上是转换到双精度和浮点数是否保留无穷大和NaN?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>