相关疑难解决方法(0)

为什么C++标准没有提到__STDC_IEC_559__?

根据C++ 11标准[c.math],<cmath>标题与标准C库标题相同<math.h>.
(当然,有几个区别,---命名空间,重载等---但这些可以在这里忽略.)
并且根据C99标准附录F,"定义的实现__STDC_IEC_559__应符合"附件中的规范F.

防爆.在atan2可能引起域错误,如果两个参数都是零,但它不能如__STDC_IEC_559__定义.

在C99中,许多行为还取决于是否__STDC_IEC_559__定义.

但是,似乎__STDC_IEC_559__在C++ 11标准中没有提到任何地方.
如果是这样,C++实现是否符合附件F中的规范?

我认为这std::numeric_limits<T>::is_iec559()是一种替代品,但似乎只提到了类型.

c++ c++11

10
推荐指数
1
解决办法
643
查看次数

如何计算两个浮点数的平均值?

在浮点运算中计算两个数字的平均值的最准确方法是什么?让我们考虑一下最常见的双精度 64 位数字。

  1. (a + b) / 2

  2. a / 2 + b / 2

  3. a + (b - a) / 2

这些计算平均值的方法可能会给出不同的结果,如下面的 C++ 代码所示:

double a = 1.2;
double b = 3.6;
double mean1 = (a + b) / 2.0;
double mean2 = a / 2.0 + b / 2.0;
double mean3 = a + (b - a) / 2.0;
cout << fixed << setprecision(20);
cout << "mean1: " << mean1 << endl;
cout << "mean2: " << mean2 …
Run Code Online (Sandbox Code Playgroud)

language-agnostic floating-point ieee-754

2
推荐指数
1
解决办法
143
查看次数

标签 统计

c++ ×1

c++11 ×1

floating-point ×1

ieee-754 ×1

language-agnostic ×1