The C++ standard doesn't provide a value for pi but it's simple to define yourself:
Output:
#include <iostream>
#include <cmath> // M_PI is not standard
using namespace std;
class MathConst {
public:
static const long double PI;
};
const long double MathConst::PI = acos((long double) -1);
int main() {
cout.precision(100);
cout << "PI ~ " << MathConst::PI << endl;
}
That is accurate to 18 decimal places.
$ g++ MathConst.cpp -o pi
$ ./pi
PI ~ 3.14159265358979323851280895940618620443274267017841339111328125
Here's a definition in C:
#include <math.h>
#include <stdio.h>
double pi() {
const double pi = acos((double) - 1);
return pi;
}
int main() {
printf("%.20f\n", pi());
return 0;
}
2 comments:
C++ doesn't. But C does.
#include <cstdio>
M_PI
My understanding is that M_PI is not part of ANSI C.
I just tried it with cstdio and g++ and M_PI isn't declared.
Post a Comment