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

dbgud85님의 프로필 이미지
dbgud85

작성한 질문수

(2025) 일주일만에 합격하는 정보처리기사 실기

변수 선언과 출력

printf문에 설명안된부분 문의

해결된 질문

작성

·

14

0

17:40초에 문의드립니다.

설명하시다가 %.5 까지는 자리수라고 이해 했는데

그 뒤에 붙은lf는 어떤의미인지 모르겠습니다.

보다보니 float에서도 %.2뒤에 f가 붙어있네요.

같이 설명 부탁드립니다.

답변 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 언어에서 lfdouble 형식 지정자이지만, 일반적으로 printf에서는 f를 사용하여 floatdouble을 출력합니다.

printf 포맷에서 %.2f%.5lf처럼 형식 지정자 끝의 f 또는 lffloatdouble 타입을 명확히 구분하지 않기 때문에 혼동할 수 있지만, ffloat, lfdouble에 해당합니다. 이 형식 지정자를 사용하여 해당 소수점 자리까지 정확히 출력할 수 있습니다.

비슷한 내용에 대한 기존 답변도 도움을 줄 수 있습니다. 다음 링크를 참고해 주세요:
- JAVA 소수 자료형 출력 관련해서 문의드립니다.

이 게시물에서는 Java/C에서 소수점 이하 자리수를 제한하여 출력하는 방법과 형식 지정자에 대해 더 깊이 설명하고 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

dbgud85님의 프로필 이미지
dbgud85

작성한 질문수

질문하기