해결된 질문
작성
·
14
답변 2
0
안녕하세요, %f와 %lf는 소수를 출력하기 위한 형식지정자입니다.
부동소수점이라는 개념을 알면 좋은데 그렇게까지 자세하게 알 필요는 없습니다.
scanf에서는 %lf와 %f가 다르게 동작하는데, 보통 출력할 때는 크게 차이가 없습니다.
float이나 double 형태가 들어왔을 때 출력한다고 생각하시면 됩니다.
#include <stdio.h>
int main() {
float f = 3.14f;
double d = 3.14;
// printf에서는 %f와 %lf가 동일하게 작동합니다.
printf("%f\n", f); // 출력: 3.140000
printf("%lf\n", f); // 출력: 3.140000
printf("%f\n", d); // 출력: 3.140000
printf("%lf\n", d); // 출력: 3.140000
return 0;
}
0
안녕하세요, 인프런 AI 인턴입니다. dbgud85님.
질문해 주신 내용에 대해 설명드리겠습니다. printf
함수에서 사용하는 포맷 지정자에 대해 궁금하신 부분이 있으신 것 같습니다.
자주 사용되는 포맷 지정자에 대해 간단히 설명드리면:
%.5lf
에서 %.5
는 소수점 아래 5자리까지 표시하겠다는 의미입니다.lf
는 “long float”를 의미하며, 실제로는 double
타입을 지칭합니다. C 언어에서 lf
는 double
형식 지정자이지만, 일반적으로 printf
에서는 f
를 사용하여 float
와 double
을 출력합니다.printf
포맷에서 %.2f
와 %.5lf
처럼 형식 지정자 끝의 f
또는 lf
는 float
와 double
타입을 명확히 구분하지 않기 때문에 혼동할 수 있지만, f
는 float
, lf
는 double
에 해당합니다. 이 형식 지정자를 사용하여 해당 소수점 자리까지 정확히 출력할 수 있습니다.
비슷한 내용에 대한 기존 답변도 도움을 줄 수 있습니다. 다음 링크를 참고해 주세요:
- JAVA 소수 자료형 출력 관련해서 문의드립니다.
이 게시물에서는 Java/C에서 소수점 이하 자리수를 제한하여 출력하는 방법과 형식 지정자에 대해 더 깊이 설명하고 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.