Friday, November 10, 2006
C언어] 원주율(PI;파이) 근사값 상수, M_PI 출력 예제
math.h 헤더 파일에 원주율 근사값 상수가 M_PI 라는 이름으로 정의되어 있습니다.
소수점 이하 20자리까지인데
원주율의 소수점 이하 50자리까지의 값은 아래와 같습니다:
물론 아무리 정밀한 계산이라도 20~30자리 정도면 충분합니다.
그런데 화면으로 출력을 하니 상수의 값과 완전히 일치하지 않는군요. 부동소수점 오차 문제도 있고, 또한 출력 함수가 값을 손질하기 때문일 것입니다.
C++ 로도 사정은 비슷했습니다:
파일명: 0.cpp
▶▶ C언어 에러 해결] error C2065: 'M_PI' : undeclared identifier
▶▶ C언어] 원주율(PI) 계산 소스; 소수점 이하 799 자리까지 파이 값 구하기
▶▶ C언어] 자연 로그의 밑 e 상수 출력 사용법; Natural Logarithm, Euler Constant, M_E
#define M_PI 3.14159265358979323846
소수점 이하 20자리까지인데
원주율의 소수점 이하 50자리까지의 값은 아래와 같습니다:
3.14159265358979323846264338327950288419716939937510
물론 아무리 정밀한 계산이라도 20~30자리 정도면 충분합니다.
원주율 근사값 상수, M_PI 출력 소스
파일명: 0.cpp#include <stdio.h>
#define _USE_MATH_DEFINES
#include <math.h>
int main(void) {
printf("%f\n", M_PI); // 3.141593
printf("%.16f\n", M_PI); // 3.1415926535897931
// M_PI // 3.14159265358979323846
return 0;
}
#define _USE_MATH_DEFINES
#include <math.h>
int main(void) {
printf("%f\n", M_PI); // 3.141593
printf("%.16f\n", M_PI); // 3.1415926535897931
// M_PI // 3.14159265358979323846
return 0;
}
그런데 화면으로 출력을 하니 상수의 값과 완전히 일치하지 않는군요. 부동소수점 오차 문제도 있고, 또한 출력 함수가 값을 손질하기 때문일 것입니다.
C++ 로도 사정은 비슷했습니다:
파일명: 0.cpp
#include <iostream>
#define _USE_MATH_DEFINES
#include <cmath>
using namespace std;
int main(void) {
cout << M_PI << endl; // 3.14159
return 0;
}
#define _USE_MATH_DEFINES
#include <cmath>
using namespace std;
int main(void) {
cout << M_PI << endl; // 3.14159
return 0;
}
▶▶ C언어 에러 해결] error C2065: 'M_PI' : undeclared identifier
▶▶ C언어] 원주율(PI) 계산 소스; 소수점 이하 799 자리까지 파이 값 구하기
▶▶ C언어] 자연 로그의 밑 e 상수 출력 사용법; Natural Logarithm, Euler Constant, M_E
tag: cpp
C언어 | C/C++ (Visual C++)
<< Home