strtod

STRTOD(3)       Ð ÑководÑÑво пÑогÑаммиÑÑа Linux       STRTOD(3)



ÐÐЯ
       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), возможно знаки плÑÑ ('+') или минÑÑ
       ('-'), а заÑем либо (а) деÑÑÑиÑное ÑиÑло, либо
       (б) ÑеÑÑнадÑаÑеÑиÑное ÑиÑло, либо (в)
       беÑконеÑноÑÑÑ, либо (г) NAN (not-a-number,
       неÑиÑловое знаÑение).

       ÐеÑÑÑиÑное ÑиÑло ÑоÑÑÐ¾Ð¸Ñ Ð¸Ð· не пÑÑÑной
       поÑледоваÑелÑноÑÑи деÑÑÑиÑнÑÑ ÑиÑÑ Ð¾Ñ 0 до 9,
       возможно ÑодеÑжаÑей Ñимвол дÑобного
       ÑазделиÑÐµÐ»Ñ (деÑÑÑиÑÐ½Ð°Ñ ÑоÑка, завиÑÐ¸Ñ Ð¾Ñ
       наÑÑÑойки локали; обÑÑно ÑÑо Ñимвол ÑоÑки
       '.'), возможно Ñ Ð¿Ð¾ÑледÑÑÑей деÑÑÑиÑной
       ÑкÑпоненÑой. ÐеÑÑÑиÑÐ½Ð°Ñ ÑкÑпоненÑа ÑоÑÑÐ¾Ð¸Ñ Ð¸Ð·
       Ñимвола 'E' или 'e', далее возможен знак
       плÑÑ Ð¸Ð»Ð¸ минÑÑ, а заÑем непÑÑÑаÑ
       поÑледоваÑелÑноÑÑÑ Ð´ÐµÑÑÑиÑнÑÑ ÑиÑÑ, ознаÑаÑÑаÑ
       Ñмножение вÑей наÑалÑной ÑаÑÑи на 10 в
       Ñказанной ÑÑепени.

       ШеÑÑнадÑаÑеÑиÑное ÑиÑло ÑоÑÑÐ¾Ð¸Ñ Ð¸Ð· Ñимволов
       «0x» или «0X» Ñ Ð¿Ð¾ÑледÑÑÑей непÑÑÑой
       поÑледоваÑелÑноÑÑÑÑ Ð¸Ð· ÑеÑÑнадÑаÑеÑиÑнÑÑ ÑиÑÑ,
       возможно ÑодеÑжаÑей Ñимвол дÑобного
       ÑазделиÑелÑ, далее Ð¼Ð¾Ð¶ÐµÑ ÑледоваÑÑ
       двоиÑÐ½Ð°Ñ ÑкÑпоненÑа. ÐвоиÑÐ½Ð°Ñ ÑкÑпоненÑа
       ÑоÑÑÐ¾Ð¸Ñ Ð¸Ð· Ñимвола 'P' или 'p', далее,
       возможно, знака плÑÑ Ð¸Ð»Ð¸ минÑÑ, и непÑÑÑой
       поÑледоваÑелÑноÑÑи деÑÑÑиÑнÑÑ ÑиÑÑ,
       обознаÑаÑÑÐ¸Ñ Ñмножение вÑего наÑалÑного
       ÑиÑла на 2 в Ñказанной ÑÑепени. Ðо менÑÑей
       меÑе должен бÑÑÑ Ñказан либо Ñимвол
       дÑобного ÑазделиÑÐµÐ»Ñ Ð»Ð¸Ð±Ð¾ двоиÑнаÑ
       ÑкÑпоненÑа.

       ÐеÑконеÑноÑÑÑ â ÑÑо либо знаÑение «INF» либо
       «INFINITY», ÑегиÑÑÑ Ñимволов не ÑÑиÑÑваеÑÑÑ.

       ÐеÑиÑловое знаÑение (NAN) â ÑÑо знаÑение «NAN»
       (ÑегиÑÑÑ Ñимволов не ÑÑиÑÑваеÑÑÑ) возможно
       ÑопÑовождаемое (поÑледоваÑелÑноÑÑÑ n
       Ñимволов), где поÑледоваÑелÑноÑÑÑ n
       Ñимволов, опÑеделÑÐµÑ Ñип неÑиÑлового
       знаÑÐµÐ½Ð¸Ñ Ð² завиÑимоÑÑи Ð¾Ñ ÑекÑÑего
       пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ NAN в ÑиÑÑеме (ÑмоÑÑиÑе ÐÐÐÐЧÐÐÐЯ).

ÐÐÐÐÐ ÐЩÐÐÐÐÐ ÐÐÐЧÐÐÐÐ
       ФÑнкÑии возвÑаÑаÑÑ Ð¿ÑеобÑазованное
       знаÑение, еÑли Ñаковое ÑÑÑеÑÑвÑеÑ.

       ÐÑли endptr не Ñавно NULL, Ñо ÑказаÑÐµÐ»Ñ Ð½Ð°
       Ñимвол, ÑледÑÑÑий за поÑледним
       обÑабоÑаннÑм Ñимволом, ÑоÑÑанÑеÑÑÑ Ð² меÑÑо,
       ÑказÑваемое endptr.

       ÐÑли Ð½Ð¸ÐºÐ°ÐºÐ¸Ñ Ð¿ÑеобÑазований не
       пÑоизводилоÑÑ, Ñо возвÑаÑаеÑÑÑ Ð½Ð¾Ð»Ñ, а
       знаÑение nptr ÑоÑÑанÑеÑÑÑ Ð² Ñой позиÑии, на
       коÑоÑÑÑ ÑÑÑлаеÑÑÑ endptr (еÑли endptr не Ñавно null).

       ÐÑли пÑавилÑное знаÑение вÑзвало бÑ
       пеÑеполнение (overflow), Ñо возвÑаÑаеÑÑÑ HUGE_VAL
       (HUGE_VALF, HUGE_VALL)  (в завиÑимоÑÑи Ð¾Ñ Ð·Ð½Ð°ÐºÐ°
       велиÑинÑ), а ERANGE запиÑÑваеÑÑÑ Ð² пеÑеменнÑÑ
       errno. ÐÑли пÑавилÑное знаÑение бÑло бÑ
       наÑÑолÑко маленÑким, ÑÑо им можно бÑдеÑ
       пÑенебÑеÑÑ, Ñо возвÑаÑаеÑÑÑ Ð½Ð¾Ð»Ñ, а
       пеÑеменной errno пÑиÑваиваеÑÑÑ Ð·Ð½Ð°Ñение ERANGE.

ÐШÐÐÐÐ
       ERANGE ÐелиÑина оказалаÑÑ ÑлиÑком болÑÑой или
              оÑÐµÐ½Ñ Ð¼Ð°Ð»ÐµÐ½Ñкой.

ÐТРÐÐУТЫ
       ÐпиÑание ÑеÑминов данного Ñаздела ÑмоÑÑиÑе
       в attributes(7).

       ┌──────────────────────────────┬────────────────────────────────┬────────────────┐
       │ÐнÑеÑÑÐµÐ¹Ñ                 ÐÑÑибÑÑ                      ÐнаÑение │
       ├──────────────────────────────┼────────────────────────────────┼────────────────┤
       │strtod(), strtof(), strtold() │ ÐезвÑедноÑÑÑ Ð² ниÑÑÑ │ MT-Safe locale │
       └──────────────────────────────┴────────────────────────────────┴────────────────┘
СÐÐТÐÐТСТÐÐРСТÐÐÐÐРТÐÐ
       POSIX.1-2001, POSIX.1-2008, C99.

       strtod() бÑла Ñакже опиÑана в C89.

ÐÐÐÐЧÐÐÐЯ
       Так как возвÑаÑаемÑм знаÑением Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ 0
       пÑи ÑÑпеÑном вÑполнении и оÑибке, вÑзÑваÑÑаÑ
       пÑогÑамма должна пÑиÑвоиÑÑ errno знаÑение 0
       до вÑзова, а поÑле вÑзова опÑеделиÑÑ
       возникновение оÑибки по ненÑлевомÑ
       знаÑÐµÐ½Ð¸Ñ errno.

       Ð ÑеализаÑии glibc поÑледоваÑелÑноÑÑÑ n
       Ñимволов, коÑоÑÐ°Ñ Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾ÑвлÑÑÑÑÑ Ð¿Ð¾Ñле
       «NAN», ÑаÑÑмаÑÑиваеÑÑÑ ÐºÐ°Ðº Ñелое ÑиÑло (Ñ
       необÑзаÑелÑнÑм пÑеÑикÑом «0» или «0x» длÑ
       ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ ÑиÑÑÐµÐ¼Ñ ÑÑиÑÐ»ÐµÐ½Ð¸Ñ 8 или 16), коÑоÑое
       бÑÐ´ÐµÑ Ð¿Ð¾Ð¼ÐµÑено в манÑиÑÑÑ Ð²Ð¾Ð·Ð²ÑаÑаемого
       знаÑениÑ.

ÐÐ ÐÐÐÐ
       ÐÑÐ¸Ð¼ÐµÑ Ð¼Ð¾Ð¶Ð½Ð¾ найÑи в ÑпÑавоÑной ÑÑÑаниÑе
       strtol(3); в ней показано иÑполÑзование
       поÑÐ¾Ð¶Ð¸Ñ ÑÑнкÑий.

СÐÐТРÐТРТÐÐÐÐ
       atof(3), atoi(3), atol(3), nan(3), nanf(3), nanl(3), strtol(3),
       strtoul(3)



Linux                             2016-03-15                         STRTOD(3)