cout << fixed
cout.precision(6)
백준 문제를 풀던 도중 PI가 5자리밖에 표현이 되지 않아 제대로 출력이 되지 않은 문제가 발생했다.
이 문제를 해결하기위해 구글링을 해서 발견한 것이 cout내에 소수점 자리수 출력을 고정하는 방법이다.
#include <iostream>
#include <cmath>
using namespace std;
#define PI 3.1415926535897932 //PI 적용
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
double a;
cin >> a;
cout << a * a * PI << "\n";
cout << a * a * 2 << "\n";
}
PI와 택시기하학의 원주율을 이용한 원의 넓이를 구하는 문제에서 내가 쓴 코드이다. 아무리 PI를 길게 적고 a를 double, int를 활용해서 받아도 오류가 발생했다.
cout << fixed;
cout.precision(6);
이때 추가한 구문이 cout<< fixed 와 cout.precision(6) 이다.
이후로 출력되는 소수점을 고정하겠다는 구문이다.
고정되는 소수점의 범위를 6자리까지로 하겠다는 구문이다.
이후 6자리를 초과하는 값은 반올림하여 6번째 소수점에 반영된다.
만약 소수점을 고정한 것을 이후 구문을 통해 해제하고 싶은 경우 cout.unsetf(ios::fixed);를 통해 고정을 해제하면된다.
cout.setf(ios::fixed);의 경우 cout<<fixed;와 같은 역할로 사용할 수 있다.