std :: numeric_limits :: infinity()的倒数是零吗?

dav*_*igh 21 c++ floating-point infinity

C++标准(或IEEE 754浮点标准)中有什么保证1./std::numeric_limits<double>::infinity()零(或至少是一个小数字)?

Joh*_*nck 15

任何有限数除以无穷大在IEEE 754下都会导致零(因此在大多数典型的C++实现中都是相同的).

如果分子和分母的符号不同,则结果将为负零,其等于零.

  • 是的,正确的措辞是"结果_a_零":) (6认同)
  • 嗯,不,不完全是:如果有限数是负数,它返回-0,这与0不同(尽管它比较相等). (3认同)
  • @FedericoPoloni:IEEE 754规范2级(浮点数据)中的+0和-0在1级(扩展实数)中表示为零. (2认同)

Gon*_*n I 11

是的,根据GNU C库参考手册(假设IEEE 754):

无穷大通过计算传播,如人们所期望的那样:例如,2 +∞=∞,4 /∞= 0

https://www.gnu.org/software/libc/manual/html_node/Infinity-and-NaN.html

您可能想要检查您的C++编译器是否使用IEEE 754:

如何检查C++编译器是否使用IEEE 754浮点标准