인프런 커뮤니티 질문&답변

정진호님의 프로필 이미지
정진호

작성한 질문수

홍정모의 따라하며 배우는 C언어

4.7 printf() 함수의 변환 지정자들

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

해결된 질문

작성

·

147

1

 

이렇게 커맨드를 쳤는데,

이렇게 나왔습니다.

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

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

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

답변 1

1

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

 

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

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

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

 

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

image

정진호님의 프로필 이미지
정진호
질문자

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

정진호님의 프로필 이미지
정진호

작성한 질문수

질문하기