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

제가 밑의 소스코드를 실행하면 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

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.