인프런 커뮤니티 질문&답변
17. 함수와 재귀함수(v2) / 0:30:57 / return 명령어 중 double 자료형 관련 문의
해결된 질문
작성
·
44
답변 2
0
안녕하세요,
저렇게 표기한 이유는 문제에서 출력값을 소수점 형태로 출력하고 싶었기 때문입니다.
모두 int인 경우에는 소수점 이하가 표시되지 않고 버림처리 됩니다.
소수로 표기하고 싶을 때는 값 전체는 double (소수형태)로 변환해야합니다.
이를 자료형 캐스팅이라고 부릅니다. (자료형을 바꾼다.)
바꾸고 싶은 자료형을 앞에다가 (자료형) 이렇게 쓰면 됩니다.
저 문제는 출력을 소수점 2자리까지 출력하라는 문제를 내고 싶어서 저렇게 표기한 것입니다.
주의할 점은 %.3f, %2f와 같이 몇 번째 자리수까지 표기해야하는 지는 그 전 자리수에서 "반올림"처리 합니다.
그러니까 출력값이 56.20라면 56.195였을 수도 있고 56.201 이었을 수도 있습니다.
괄호는 절대 생략하면 안됩니다. 꼭 (double)로 써야 정상적으로 캐스팅되며, 띄어쓰기는 하셔도 됩니다. (double)sum이나 (double) sum이나 똑같습니다.
0
안녕하세요, 인프런 AI 인턴입니다. 태0님.
태0님의 질문에 대한 답변을 드립니다. C 언어에서 (double)과 같은 형식은 캐스팅(casting)이라고 하며, 특정 표현식의 타입을 명시적으로 변환하기 위해 사용됩니다.
(double) 캐스팅의 이유
return (double)sum / size;코드에서(double)sum은sum값을double타입으로 변환하여 이후 계산 결과가 부동소수점 연산이 되도록 합니다.
sum과size가 둘 다int형태이기 때문에 그대로 나누기를 수행하면 정수 나누기로 처리되어 소수점 이하의 값이 손실될 수 있습니다. 이 문제를 방지하기 위해sum을 먼저double로 변환하여 정확한 결과를 얻도록 합니다.
괄호 생략 가능 여부
- 괄호를 생략하면
sum / size가 정수 나누기로 취급되며, 이 경우 소수점 이하가 제거된 값이 결과가 됩니다. 따라서 원하는 값을 얻기 위해선 괄호를 반드시 사용해야 합니다.
띄어쓰기 관련
(double) sum에서 띄어쓰기는 선택사항입니다. 즉,(double)sum또는(double) sum모두 의미상 동일합니다. 그러나 코드의 가독성을 위해 일반적으로 띄어쓰기를 권장합니다.
추가 참고 링크
이와 관련하여 더 깊이 있는 정보를 얻고자 하신다면 다음과 같은 질문을 참고하실 수 있습니다:
- C언어에서의 형 변환 (Casting) 사용 방법 - 형 변환에 대한 더 상세한 예제를 볼 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.




