46.5 실수를 문자열로 변환하기

마찬가지로 실수를 문자열로 변환할 때도 sprintf 함수를 사용합니다(stdio.h 헤더 파일에 선언되어 있습니다).

  • sprintf(문자열, "%f", 실수);

다음 내용을 소스 코드 편집 창에 입력한 뒤 실행해보세요.

real_number_to_string.c

#define _CRT_SECURE_NO_WARNINGS    // sprintf 보안 경고로 인한 컴파일 에러 방지
#include <stdio.h>     // sprintf 함수가 선언된 헤더 파일

int main()
{
    char s1[10];               // 변환한 문자열을 저장할 배열
    float num1 = 38.972340f;   // 38.972340은 실수

    sprintf(s1, "%f", num1);   // %f를 지정하여 실수를 문자열로 저장

    printf("%s\n", s1);        // 38.972340

    return 0;
}

실행 결과

38.972340

sprintf함수에 서식 지정자로 %f를 지정하면 실수를 문자열로 변환할 수 있습니다. 물론 %e를 지정하여 다음과 같이 지수 표기법으로 된 문자열로 변환할 수도 있습니다.

real_number_to_exponential_notation_string.c

#define _CRT_SECURE_NO_WARNINGS    // sprintf 보안 경고로 인한 컴파일 에러 방지
#include <stdio.h>     // sprintf 함수가 선언된 헤더 파일

int main()
{
    char s1[20];                // 변환한 문자열을 저장할 배열
    float num1 = 38.972340f;    // 38.972340은 실수

    sprintf(s1, "%e", num1);    // %e를 지정하여 실수를 지수 표기법으로 된 문자열로 저장

    printf("%s\n", s1);         // 3.897234e+01
  
    return 0;
}

실행 결과

3.897234e+01

여기서 변환한 문자열이 길어질 수 있으므로 반드시 배열의 크기(동적 메모리로 할당한 크기)를 확인합니다.