strtod(3) Library Functions Manual strtod(3) NUME strtod, strtof, strtold - convertesc un ir ASCII in numar in virgula mobila BIBLIOTECA Biblioteca C standard (libc, -lc) REZUMAT #include double strtod(const char *restrict nptr, char **restrict endptr); float strtof(const char *restrict nptr, char **restrict endptr); long double strtold(const char *restrict nptr, char **restrict endptr); Cerine pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultai feature_test_macros(7)): strtof(), strtold(): _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L DESCRIERE Funciile strtod(), strtof() i strtold() convertesc poriunea iniiala a irului indicat de nptr in reprezentarea double, float i, respectiv, long double. Forma ateptata a irului (poriunii iniiale a irului) este un spaiu alb de inceput opional, astfel cum este recunoscut de isspace(3), un semn plus (,,+") sau minus (,,-") opional i apoi fie (i) un numar zecimal, fie (ii) un numar hexazecimal, fie (iii) un infinit, fie (iv) un NAN (not-a-number). Un numar zecimal consta dintr-o secvena nevida de cifre zecimale care poate conine un caracter drept separator zecimal (semn zecimal, in funcie de configuraia regionala, de obicei ,,."), urmat, opional, de un exponent zecimal. Un exponent zecimal consta dintr-un ,,E" sau ,,e", urmat de un semn plus sau minus opional, urmat de o secvena nevida de cifre zecimale, i indica inmulirea cu o putere de 10. Un numar hexazecimal este format dintr-un ,,0x" sau ,,0X" urmat de o secvena nevida de cifre hexazecimale care poate conine un caracter drept separator, urmat, opional, de un exponent binar. Un exponent binar consta dintr-un ,,P" sau ,,p", urmat de un semn plus sau minus opional, urmat de o secvena nevida de cifre zecimale i indica inmulirea cu o putere de 2. Trebuie sa fie prezent (cel puin unul dintre ele) fie caracterul cu rol separator, fie exponentul binar. Un infinit este fie ,,INF", fie ,,INFINITY", fara a lua in considerare diferenele dintre ele. Un NAN este ,,NAN" (fara a lua in considerare majusculele i minusculele) urmat, opional, de un ir de caractere, (n-char-sequence), unde n-char-sequence specifica tipul de NAN intr-un mod care depinde de implementare (a se vedea seciunea NOTE). VALOAREA RETURNATA Aceste funcii returneaza valoarea convertita, daca exista. Daca endptr nu este NULL, in locaia la care face referire endptr se stocheaza un indicator la caracterul de dupa ultimul caracter utilizat in conversie. Daca nu se efectueaza nicio conversie, se returneaza zero i (cu excepia cazului in care endptr este nul) valoarea lui nptr este stocata in locaia la care face referire endptr. In cazul in care valoarea corecta ar provoca o depaire, se returneaza plus sau minus HUGE_VAL, HUGE_VALF sau HUGE_VALL (in funcie de tipul de returnare i de semnul valorii), iar ERANGE este stocat in errno. In cazul in care valoarea corecta ar provoca o depaire a limitei minime (ar fi sub valoarea minima), se returneaza o valoare cu magnitudinea nu mai mare decat DBL_MIN, FLT_MIN sau LDBL_MIN, iar ERANGE este stocat in errno. ERORI-IEIRE ERANGE A aparut o depaire a limitei superioare/inferioare. ATRIBUTE Pentru o explicaie a termenilor folosii in aceasta seciune, a se vedea attributes(7). +-------------------------------+---------------------+----------------+ |Interfaa | Atribut | Valoare | +-------------------------------+---------------------+----------------+ |strtod(), strtof(), strtold() | Sigurana firelor | MT-Safe locale | +-------------------------------+---------------------+----------------+ VERSIUNI In implementarea glibc, secvena n-char-sequence care urmeaza opional dupa ,,NAN" este interpretata ca un numar intreg (cu un prefix opional ,,0" sau ,,0x" pentru a selecta baza 8 sau 16) care urmeaza sa fie plasat in componenta mantisa a valorii returnate. STANDARDE C11, POSIX.1-2008. ISTORIC strtod() C89, POSIX.1-2001. strtof() strtold() C99, POSIX.1-2001. NOTE Deoarece 0 poate fi returnat in mod legitim atat in caz de succes, cat i in caz de eec, programul apelant ar trebui sa stabileasca errno la 0 inainte de apel, iar apoi sa determine daca s-a produs o eroare verificand daca errno are o valoare diferita de zero dupa apel. EXEMPLE A se vedea exemplul de pe pagina de manual strtol(3); utilizarea funciilor descrise in aceasta pagina de manual este similara. CONSULTAI I atof(3), atoi(3), atol(3), nan(3), nanf(3), nanl(3), strfromd(3), strtol(3), strtoul(3) TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . Pagini de manual de Linux 6.06 31 octombrie 2023 strtod(3)