数学常量

Microsoft 为常见的数学常数提供了多个预定义的预处理器宏。

语法

#define _USE_MATH_DEFINES // for C++
#include <cmath>

#define _USE_MATH_DEFINES // for C
#include <math.h>

备注

下列符号定义了其所指示的表达式的值:

符号 表达式 值
M_E e 2.71828182845904523536
M_LOG2E log2(e) 1.44269504088896340736
M_LOG10E log10(e) 0.434294481903251827651
M_LN2 ln(2) 0.693147180559945309417
M_LN10 ln(10) 2.30258509299404568402
M_PI pi 3.14159265358979323846
M_PI_2 pi/2 1.57079632679489661923
M_PI_4 pi/4 0.785398163397448309616
M_1_PI 1/pi 0.318309886183790671538
M_2_PI 2/pi 0.636619772367581343076
M_2_SQRTPI 2/sqrt(pi) 1.12837916709551257390
M_SQRT2 sqrt(2) 1.41421356237309504880
M_SQRT1_2 1/sqrt(2) 0.707106781186547524401

标准 C 和 C++ 不定义这些数学常量。 若要使用它们,请定义 _USE_MATH_DEFINES 并包括 <cmath> 或 <math.h>。 如果使用 /Zc:cmath, _USE_MATH_DEFINES 则不起作用。 尽可能使用标头中的 <numerics> 常量。 否则,若要使用这些数学常量, /Zc:cmath请直接包含 <corecrt_math_defines.h>。

在“发布模式”下生成项目时,文件 <ATLComTime.h> 包含 <math.h>。 如果在同时包含 <ATLComTime.h> 的项目中使用了一个或多个数学常量,则在包含 _USE_MATH_DEFINES 前必须先定义 <ATLComTime.h>。

另请参阅

全局常数
Zc:cmath