[C++] 소숫점 반올림 고정출력 cout << fixed; cout.precision();

넘칠 연·2023년 7월 17일
2

C++

목록 보기
1/3

소숫점을 고정시켜서 출력해야 할 때 사용하면 됩니다.

기본적으로 반올림이 포함됩니다.

0. 헤더파일

//추가로 필요한 헤더파일은 없습니다.

1. 출력할 전체 길이를 고정

cout.precision(n);

//양의 정수 n만큼 고정합니다.
//유효숫자를 고려해야되는데 1보다 작은 양의 유리수의 경우에는 정수부인 0은 자릿수에 포함이 안됩니다.

streamsize prec = cout.precision();
cout.precision(prec);
//해제하고 싶다면 지정 전, 복원하고 싶은 지점에서 값을 저장해두면 됩니다.

2. 소숫점 자릿수만 고정

cout << fixed;

//정수부와는 관계없이 소숫점 아래 길이만 고정합니다.

cout.unsetf(ios::fixed);
//해제할 수 있고, cout.precision();과는 별도로 적용됩니다.

3. 예시

#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;
}

4. 추천 문제

[BOJ 10984 (B3) 내 학점을 구해줘 ]

//https://www.acmicpc.net/problem/10984

5. 출처

//C++. cout 소수점 자리수 조절하기
//https://pmoncode.tistory.com/20

//COUT을 이용할때 출력 정밀도를 제어해 보자
//https://jangjy.tistory.com/301
profile
멋지게 될 기회를 놓치지 말라 - 티나 실리그

5개의 댓글

comment-user-thumbnail
2023년 7월 18일

너무 좋은 글이네요. 공유해주셔서 감사합니다.

1개의 답글
comment-user-thumbnail
2023년 7월 18일

가치 있는 정보 공유해주셔서 감사합니다.

1개의 답글
comment-user-thumbnail
2023년 7월 18일

많은 도움이 되었습니다, 감사합니다.

답글 달기

관련 채용 정보