在math.h有一个宏定义M_PI

#if defined _USE_MATH_DEFINES && !defined _MATH_DEFINES_DEFINED
    #define _MATH_DEFINES_DEFINED
    // Definitions of useful mathematical constants
    // Define _USE_MATH_DEFINES before including <math.h> to expose these macro
    // definitions for common math constants.  These are placed under an #ifdef
    // since these commonly-defined names are not part of the C or C++ standards
    #define M_E        2.71828182845904523536   // e
    #define M_LOG2E    1.44269504088896340736   // log2(e)
    #define M_LOG10E   0.434294481903251827651  // log10(e)
    #define M_LN2      0.693147180559945309417  // ln(2)
    #define M_LN10     2.30258509299404568402   // ln(10)
    #define M_PI       3.14159265358979323846   // pi
    #define M_PI_2     1.57079632679489661923   // pi/2
    #define M_PI_4     0.785398163397448309616  // pi/4
    #define M_1_PI     0.318309886183790671538  // 1/pi
    #define M_2_PI     0.636619772367581343076  // 2/pi
    #define M_2_SQRTPI 1.12837916709551257390   // 2/sqrt(pi)
    #define M_SQRT2    1.41421356237309504880   // sqrt(2)
    #define M_SQRT1_2  0.707106781186547524401  // 1/sqrt(2)
#endif

但是在math.h中默认并没有定义_USE_MATH_DEFINES,因此如果需要使用M_PI的话需要在引用Math.h前先定义_USE_MATH_DEFINES

#include <iostream>
#define _USE_MATH_DEFINES
#include <math.h>
using namespace std;
void main()
	cout << M_PI << endl;

当然如果不想这样麻烦的可以自己直接在文件中对pi进行宏定义

在math.h有一个宏定义M_PI#if defined _USE_MATH_DEFINES &amp;amp;&amp;amp; !defined _MATH_DEFINES_DEFINED #define _MATH_DEFINES_DEFINED // Definitions of useful mathematical constants // // Define _...
看了好几个博客都是说加<math.h>头文件后再#define PI acos(-1) 但是其实<math.h>头文件里面其实本来就有根本不用自己定义,加了头文件后直接写M_PI就可以了。
1.M_PI 是一个宏定义,圆周率的定义    #define M_PI 3.14159265358979323846 (参考)    此宏定义和编译器有关,TCM_PI宏就定义在&lt;math.h&gt;里面。    但vc的&lt;math.h&gt;没有了M_PI的宏定义。 2.M_E 是自然对数的一个宏定义   #define M_E  2.7182818284590452353...
// 输出结果并显示计算所用的时间 printf("&pi; = %.100f\n", pi); printf("Time taken: %f seconds\n", (double)(end_time - start_time) / CLOCKS_PER_SEC); return 0; 注意:这个程序只能求解&pi;的前一亿位,如果要求解更多的位数,则需要增加 MAX_ITERATIONS 的