strtod(3) - wariua/manpages-ko GitHub Wiki
strtod, strtof, strtold - ASCII λ¬Έμμ΄μ λΆλμμμ μλ‘ λ³ννκΈ°
#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);
glibc κΈ°λ₯ νμΈ λ§€ν¬λ‘ μ건 (feature_test_macros(7) μ°Έκ³ ):
-
strtof()
,strtold()
: _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L
strtod()
, strtof()
, strtold()
ν¨μλ nptr
μ΄ κ°λ¦¬ν€λ λ¬Έμμ΄μ μ²μ λΆλΆμ κ°κ° double
, float
, long double
ννμΌλ‘ λ³ννλ€.
κΈ°λνλ λ¬Έμμ΄ (μμ λΆλΆμ) νμμ μ λμ μ νμ μΈ κ³΅λ°±(isspace(3)
λ‘ μΈμ), μ νμ μΈ μμ('+') λλ μμ('-') λΆνΈ, κ·Έλ¦¬κ³ (i) 10μ§μ, (ii) 16μ§μ, (iii) 무νλ, (iv) NAN (not-a-number) μ€ νλκ° μ€λ κ²μ΄λ€.
10μ§μλ μμμ (λ‘μΊμ λ°λΌ λ€λ₯΄μ§λ§ λ³΄ν΅ '.')μ ν¬ν¨ν μλ μλ 10μ§μ μ«μλ‘ λ λΉμ΄ μμ§ μμ μ΄μ΄λ©°, μ νμ μΌλ‘ 10μ§ μ§μκ° λ°λΌμ¨λ€. 10μ§ μ§μλ 'E' λλ 'e'μ μ΄μ΄ μ νμ μΌλ‘ μμ λλ μμ λΆνΈκ° μ€κ³ μ΄μ΄μ 10μ§λ² μ«μλ‘ λ λΉμ΄ μμ§ μμ μ΄μ΄ μ€λ©°, 10μ κ±°λμ κ³±μΌλ‘ κ³±νλ€λ λ»μ΄λ€.
16μ§μλ "0x" λλ "0X"μ μ΄μ΄ μμμ μ ν¬ν¨ν μλ μλ 16μ§μ μ«μλ‘ λ λΉμ΄ μμ§ μμ μ΄μ΄ μ€κ³ , μ νμ μΌλ‘ 2μ§ μ§μκ° λ°λΌμ¨λ€. 2μ§ μ§μλ 'P' λλ 'p'μ μ΄μ΄ μ νμ μΌλ‘ μμ λλ μμ λΆνΈκ° μ€κ³ μ΄μ΄μ 10μ§λ² μ«μλ‘ λ λΉμ΄ μμ§ μμ μ΄μ΄ μ€λ©°, 2μ κ±°λμ κ³±μΌλ‘ κ³±νλ€λ λ»μ΄λ€. μμμ κ³Ό 2μ§ μ§μ μ€ νλλ μμ΄μΌ νλ€.
무νλλ "INF" λλ "INFINITY"μ΄λ©° λμλ¬Έμ ꡬλ³μ΄ μλ€.
NANλ "NAN"(λμλ¬Έμ κ΅¬λ³ μμ)μ μ΄μ΄ μ νμ μΌλ‘ λ¬Έμμ΄ (n-char-sequence)
κ° μ€λ κ²μ΄λ€. n-char-sequence
λ ꡬνλ³λ‘ λ€λ₯Έ λ°©μμΌλ‘ NANμ μ’
λ₯λ₯Ό λνλΈλ€. (NOTES μ°Έκ³ .)
μ΄ ν¨μλ€μ λ³νν κ°μ΄ μμΌλ©΄ κ·Έ κ°μ λ°ννλ€.
endptr
μ΄ NULLμ΄ μλλ©΄ λ³νμ μ΄ λ§μ§λ§ λ¬Έμ λ€μ λ¬Έμμ λν ν¬μΈν°λ₯Ό endptr
μ΄ κ°λ¦¬ν€λ μμΉμ μ μ₯νλ€.
μ΄λ€ λ³νλ μννμ§ μμμΌλ©΄ 0μ λ°ννλ©° (endptr
μ΄ λμ΄ μλλ©΄) nptr
μ κ°μ endptr
μ΄ κ°λ¦¬ν€λ μμΉμ μ μ₯νλ€.
κ°μ΄ μ€λ²νλ‘μ°λ₯Ό μΌμΌν€κ² λλ©΄ (κ·Έ κ°μ λΆνΈμ λ°λΌ) μμ λλ μμ HUGE_VAL
(HUGE_VALF
, HUGE_VALL
)μ λ°ννλ©° errno
μ ERANGE
λ₯Ό μ μ₯νλ€. κ°μ΄ μΈλνλ‘μ°λ₯Ό μΌμΌν€κ² λλ©΄ 0μ λ°ννλ©° errno
μ ERANGE
λ₯Ό μ μ₯νλ€.
ERANGE
- μ€λ²νλ‘μ°λ μΈλνλ‘μ°κ° λ°μνλ€.
μ΄ μ μμ μ¬μ©νλ μ©μ΄λ€μ λν μ€λͺ μ attributes(7)λ₯Ό 보λΌ.
μΈν°νμ΄μ€ | μμ± | κ° |
---|---|---|
strtod() , strtof() , strtold()
|
μ€λ λ μμ μ± | MT-Safe locale |
POSIX.1-2001, POSIX.1-2008, C99.
strtod()
λ C89μλ κΈ°μ λμ΄ μλ€.
μ±κ³΅κ³Ό μ€ν¨ μ΄λ μͺ½μμλ μ λ²νκ² 0μ λ°νν μ μμΌλ―λ‘ νΈμΆ νλ‘κ·Έλ¨μμλ νΈμΆ μ μ errno
λ₯Ό 0μΌλ‘ μ€μ νκ³ μ νΈμΆ νμ errno
κ° 0 μλ κ°μΈμ§ κ²μ¬ν΄μ μ€λ₯κ° λ°μνλμ§ νμΈν΄μΌ νλ€.
glibc ꡬνμμλ "NAN" λ€μ μ νμ μΌλ‘ μ€λ n-char-sequence
λ₯Ό μ μλ‘ ν΄μνμ¬ (μ νμ μΌλ‘ μμ '0'μ΄λ '0x'λ₯Ό λΆμ¬μ 8μ§λ²μ΄λ 16μ§λ² μ ν) λ°ν κ°μ κ°μ λΆλΆμ μ§μ΄λ£λλ€.
strtol(3) λ§€λ΄μΌ νμ΄μ§μ μλ₯Ό μ°Έκ³ νλΌ. μ΄ λ§€λ΄μΌ νμ΄μ§μμ κΈ°μ νλ ν¨μλ€κ³Ό μ¬μ© λ°©μμ΄ λΉμ·νλ€.
atof(3), atoi(3), atol(3), nan(3)
, nanf(3)
, nanl(3)
, strfromd(3), strtol(3), strtoul(3)
2017-09-15