我正试图找到在 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/