본문 바로가기

Native/C

[레퍼런스] atof();

atof

원형
double atof(const char *s);

헤더파일
math.h, stdlib.h

기능
문자열을 double형 부동 소수점으로 바꾼다.
문자열은 다음과 같은 구조로 이루어져있어야 한다.

[공백TAB][부호][숫자][소수점][숫자][e]

순서를 어긴다거나(부호가 숫자 중간에 있을 경우) 불필요한 문자가 중간에 있을 경우는 변환이 중지된다.

다음의 예를 살펴보고 어떤 경우가 적법한지 살펴보아라 ㅁ는 공백을 표시한다.

"-3.6924"        올바르게 변환된다.
"ㅁㅁ-5.64e+5"    올바르게 변환된다. e는 실수를 10의 거듭제곱으로 나타낸다.
"ㅁㅁ59.14a26"    중간에 불필요한 문자가 들어갔다 59.14까지만 변환된다.
"-ㅁㅁ2.8"        부호만 변환된다 -0이 리턴된다.

overflow 발생시에는 HUGE_VAL을 리턴하며 errno를 ERANGE로 세트하며 matherr는 호출 하지 않는다. atof는 +INF, -INF를 양의 무한대와 음의 무한대수로 인식하며 +NAN과 -NAN을 Not A Number로 인식한다.

리턴값
변환된 실수를 리턴한다. 변환이 불가능할 경우는 0을 리턴한다.

참고함수
atoi -> 문자열을 정수로 변환한다.
atol -> 문자열을 long형 정수로 변환한다.

// -------------------------------------------------------------

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

int main(int argc, char *argv[])
{
    double num;
    char *str;

    str = "3.1415";
    num = atof(str);

    printf("read number is %lf\n",num);

    return 0;
}

'Native > C' 카테고리의 다른 글

[레퍼런스] atol()  (0) 2013.10.02
[레퍼런스] atoi()  (0) 2013.10.02
[레퍼런스] atexit()  (0) 2013.10.02
[레퍼런스] assert()  (0) 2013.10.02
[레퍼런스] access()  (0) 2013.10.02