[C++ 코딩테스트 공부] 자리수표현

JuY123123·2022년 3월 18일
0

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<< fixedcout.precision(6) 이다.

cout<<fixed;

이후로 출력되는 소수점을 고정하겠다는 구문이다.

cout.precision(6)

고정되는 소수점의 범위를 6자리까지로 하겠다는 구문이다.
이후 6자리를 초과하는 값은 반올림하여 6번째 소수점에 반영된다.

만약 소수점을 고정한 것을 이후 구문을 통해 해제하고 싶은 경우 cout.unsetf(ios::fixed);를 통해 고정을 해제하면된다.
cout.setf(ios::fixed);의 경우 cout<<fixed;와 같은 역할로 사용할 수 있다.

profile
프로그래밍 공부

0개의 댓글