cout을 써서 출력할 때 `double`전체를 프린트하고 싶어요

조회수 14558회

제가 밑의 소스코드를 실행하면 3.14159265358979가 아니라 3.14159로 나오는데 이렇게 소수점에서 반올림한 거 말고 전체 값이 다 나오게 하려면 어떻게 해야 되돼나요?

소스코드

int main(){
    double d = 3.14159265358979;
    cout << d << endl;
}

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    std::cout에서 소수점 몇 번째까지 출력할지를 설정한 뒤 std::fixed format specifier를 쓸 수 있습니다

    int main(){
        double d = 3.14159265358979;
        cout.precision(11);
        cout << fixed << d << endl;
    }
    

    결과 : 3.14159265359

    하나도 남기지 않고 다 출력하고 싶다면 <limits>에서 최대 몇 번째 소수점까지 지원하는지 나와있습니다.

    #include <limits>
    typedef std::numeric_limits< double > dbl;
    
    int main(){
        double d = 3.14159265358979;
        cout.precision(dbl::max_digits10);
        cout << fixed << d << endl;
    
    }
    

    결과 : 3.14159265358979001

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)