c++ - 如何在 C++ 中计算欧拉常数或欧拉?

标签 c++ eulers-number

我正试图找到在 C/C++ 中使用数字 e 的更“自然”的方式。我专注于计算函数 e^n。

我认为“cmath”在默认情况下不支持两者(函数和常量)。但是,可以启用它以包含编译器定义的常量,在本例中为 M_E。这可以通过包含语句 #define _USE_MATH_DEFINES 来完成。

另一方面,e 可以定义为常量:

#define E 2.71828182845904523536;

const double EULER = 2.71828182845904523536;

这样说。哪一个是接近这个数学常数的最“标准”方法?是其他图书馆吗?

最佳答案

如果你能避免使用预处理器符号,你应该这样做。它会在您最意想不到的时候给您带来麻烦。 E很可能会成为一个变量。

建议的解决方案:

#include <cmath>
const double EulerConstant = std::exp(1.0);

计算常量而不是分配浮点文字的优点是它会产生一个精度与 double 的精度相匹配的结果。特定 C++ 实现的数据类型。它消除了因意外跳过数字而引入错误的可能性。

如上图所示,<cmath>确实声明 std::exp ,因此您无需自己动手。

关于c++ - 如何在 C++ 中计算欧拉常数或欧拉?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18773343/

相关文章:

c++ - 在 C++ 中创建字符串时出错

c++ - Linux 管道、fork 和 execlp : how to get the value written into stream 1

c++ - 为什么此代码不将任何数据写入输出文件以使用 opencv 创建电影

c - 在 C 中使用递归函数的欧拉数

javascript - 为什么我的方法获得欧拉数,返回无穷大?

C++ std::map 键排序比较函数?

c++ - 使用 C API 更改 Tensorflow 推理的线程数

R编程: How do I get Euler's number?

c - 优化 C 语言中近似欧拉数 (e) 的算法