Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Microsoft provides several predefined preprocessor macros for common math constants.
Syntax
#define _USE_MATH_DEFINES // for C++
#include <cmath>
#define _USE_MATH_DEFINES // for C
#include <math.h>
Remarks
The following symbols are defined for the values of their indicated expressions:
| Symbol | Expression | Value |
|---|---|---|
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 |
Standard C and C++ don't define these math constants. To use them, define _USE_MATH_DEFINES and include <cmath> or <math.h>. If you use /Zc:cmath, _USE_MATH_DEFINES has no effect. Use the constants in the <numerics> header when possible. Otherwise, to use these math constants with /Zc:cmath, directly include <corecrt_math_defines.h>.
The file <ATLComTime.h> includes <math.h> when your project is built in Release mode. If you use one or more of the math constants in a project that also includes <ATLComTime.h>, you must define _USE_MATH_DEFINES before you include <ATLComTime.h>.