Recommanded Free YOUTUBE Lecture: <% selectedImage[1] %>

ASCII 문자열을 floating point 숫자로 변환한다.

사용법

#include <stdlib.h>

double strtod(const char *nptr, char **endptr);
float strtof(const char *nptr, char **endptr);
long double strtold(const char *nptr, char **endptr);

설명

strtod, strtof, strtold 함수는 인자로 받은 문자열 nptr을 해석할 수 있는 곳 까지 해석해서 double, float, long double 형으로 표현한 값을 리턴한다.

리턴값

endptr은 nptr에서 해석가능한 마지막 문자에 대한 포인터값을 가진다. 이것은 어디까지 해석해서 리턴했는지에 대한 정보를 알 수 있게 해준다.

만약 변환에 실패했다면 0이 리턴되고, endptr 은 ntpr의 처음을 가리킬 것이다.

overflow가 발생할 수도 있는데, 이경우 HUGE_VALFHUGE_VALL 이 리턴디고 errno(:12)에 ERANGE가 설정된다.

예제

#include <stdio.h>
#include <stdlib.h>

int main (int argc, char **argv)
{
    char pie[] = "3.1415";
    char * pEnd;
    double d1, d2;
    if(argc != 2)
    {
        printf("Usage : %s [radius]\n",argv[0]);
        return 1;
    }
    d1 = strtod (pie,&pEnd);
    d2 = strtod (argv[1],&pEnd);
    printf("PIE : %f\n", d1);
    printf("반지름 : %f\n", d2);
    printf ("원의 둘레 : %f\n", d1 * d2 * 2.0);
    return 0;
}