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


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

소스코드

int main(){
    double d = 3.14159265358979;
    cout << d << endl;
}
  • 2016년 01월 15일에 작성됨

조회수 852


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

  • 2016년 01월 15일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close