소숫점을 고정시켜서 출력해야 할 때 사용하면 됩니다.
기본적으로 반올림이 포함됩니다.
//추가로 필요한 헤더파일은 없습니다.
cout.precision(n);
//양의 정수 n만큼 고정합니다.
//유효숫자를 고려해야되는데 1보다 작은 양의 유리수의 경우에는 정수부인 0은 자릿수에 포함이 안됩니다.
streamsize prec = cout.precision();
cout.precision(prec);
//해제하고 싶다면 지정 전, 복원하고 싶은 지점에서 값을 저장해두면 됩니다.
cout << fixed;
//정수부와는 관계없이 소숫점 아래 길이만 고정합니다.
cout.unsetf(ios::fixed);
//해제할 수 있고, cout.precision();과는 별도로 적용됩니다.
#include <iostream>
using namespace std;
int main() {
double a=1.9876, b=0.9876;
cout << a << '\n'; //1.9876
cout << b << '\n'; //0.9876
streamsize prec = cout.precision(); //초기 값 저장
cout.precision(2); //2자리 출력
cout << a << '\n'; //2
cout << b << '\n'; //0.99
cout << fixed; //소숫점 고정
cout.precision(3); //소숫점 아래 3자리 출력
cout << a << '\n'; //1.988
cout << b << '\n'; //0.988
cout.unsetf(ios::fixed); //소숫점 고정 해제
cout << a << '\n'; //1.99
cout << b << '\n'; //0.988
cout.precision(prec); //출력 자릿수 초기 값으로 복원
cout << a << '\n'; //1.9876
cout << b << '\n'; //0.9876
return 0;
}
//https://www.acmicpc.net/problem/10984
//C++. cout 소수점 자리수 조절하기
//https://pmoncode.tistory.com/20
//COUT을 이용할때 출력 정밀도를 제어해 보자
//https://jangjy.tistory.com/301
너무 좋은 글이네요. 공유해주셔서 감사합니다.