• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

printf(".20f",d) 출력 범위 질문

24.02.21 07:44 작성 조회수 79

1

 

이렇게 커맨드를 쳤는데,

이렇게 나왔습니다.

그런데 제 출력값과 달리, 교수님은 3.141592....600 으로 끝이 반올림이 되었고, 그 이유로 double로 표현할 수 있는 자릿수의 한계때문에 그렇다고 말씀주셨습니다.

근데 저는 왜 반올림이 안되고 끝까지 나온걸까요?

release, x86 에서 실행했습니다!

답변 1

답변을 작성해보세요.

1

Soobak님의 프로필

Soobak

2024.02.22

안녕하세요, 답변 도우미 Soobak 입니다.

 

제가 취미로(?) PI 값을 많이 외우고 있어서, 운이 좋게도 오타를 발견할 수 있었네요.

3.141592653 이후부터의 숫자가 PI 값과 일치하지 않습니다.

따라서, 정밀도를 위한 반올림 등의 과정에서 값의 차이가 발생한 것 같습니다.

 

정확한 PI 값으로 입력하여 컴파일 후 실행해보니, 강의와 동일한 결과가 나타나네요.

image

정진호님의 프로필

정진호

질문자

2024.02.22

헉, 제가 실수를 했군요. 무안하지 않게 알려주셔서 감사합니다.