Scroll to navigation

strtod(3) Library Functions Manual strtod(3)

NUME

strtod, strtof, strtold - convertesc un șir ASCII în număr în virgulă mobilă

BIBLIOTECA

Biblioteca C standard (libc, -lc)

SINOPSIS

#include <stdlib.h>
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);

Cerințe pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultați feature_test_macros(7)):

strtof(), strtold():


_ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L

DESCRIERE

Funcțiile strtod(), strtof() și strtold() convertesc porțiunea inițială a șirului indicat de nptr în reprezentarea double, float și, respectiv, long double.

Forma așteptată a șirului (porțiunii inițiale a șirului) este un spațiu alb de început opțional, astfel cum este recunoscut de isspace(3), un semn plus („+”) sau minus („-”) opțional și apoi fie (i) un număr zecimal, fie (ii) un număr hexazecimal, fie (iii) un infinit, fie (iv) un NAN (not-a-number).

Un număr zecimal constă dintr-o secvență nevidă de cifre zecimale care poate conține un caracter drept separator zecimal (semn zecimal, în funcție de configurația regională, de obicei „.”), urmat, opțional, de un exponent zecimal. Un exponent zecimal constă dintr-un „E” sau „e”, urmat de un semn plus sau minus opțional, urmat de o secvență nevidă de cifre zecimale, și indică înmulțirea cu o putere de 10.

Un număr hexazecimal este format dintr-un „0x” sau „0X” urmat de o secvență nevidă de cifre hexazecimale care poate conține un caracter drept separator, urmat, opțional, de un exponent binar. Un exponent binar constă dintr-un „P” sau „p”, urmat de un semn plus sau minus opțional, urmat de o secvență nevidă de cifre zecimale și indică înmulțirea cu o putere de 2. Trebuie să fie prezent (cel puțin unul dintre ele) fie caracterul cu rol separator, fie exponentul binar.

Un infinit este fie „INF”, fie „INFINITY”, fără a lua în considerare diferențele dintre ele.

Un NAN este „NAN” (fără a lua în considerare majusculele și minusculele) urmat, opțional, de un șir de caractere, (n-char-sequence), unde n-char-sequence specifică tipul de NAN într-un mod care depinde de implementare (a se vedea secțiunea NOTE).

VALOAREA RETURNATĂ

Aceste funcții returnează valoarea convertită, dacă există.

Dacă endptr nu este NULL, în locația la care face referire endptr se stochează un indicator la caracterul de după ultimul caracter utilizat în conversie.

Dacă nu se efectuează nicio conversie, se returnează zero și (cu excepția cazului în care endptr este nul) valoarea lui nptr este stocată în locația la care face referire endptr.

În cazul în care valoarea corectă ar provoca o depășire, se returnează plus sau minus HUGE_VAL, HUGE_VALF sau HUGE_VALL (în funcție de tipul de returnare și de semnul valorii), iar ERANGE este stocat în errno.

În cazul în care valoarea corectă ar provoca o depășire a limitei minime (ar fi sub valoarea minimă), se returnează o valoare cu magnitudinea nu mai mare decât DBL_MIN, FLT_MIN sau LDBL_MIN, iar ERANGE este stocat în errno.

ERORI-IEȘIRE

A apărut o depășire a limitei superioare/inferioare.

ATRIBUTE

Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).

Interfață Atribut Valoare
strtod(), strtof(), strtold() Siguranța firelor MT-Safe locale

STANDARDE

POSIX.1-2001, POSIX.1-2008, C99.

NOTE

Deoarece 0 poate fi returnat în mod legitim atât în caz de succes, cât și în caz de eșec, programul apelant ar trebui să stabilească errno la 0 înainte de apel, iar apoi să determine dacă s-a produs o eroare verificând dacă errno are o valoare diferită de zero după apel.

În implementarea glibc, secvența n-char-sequence care urmează opțional după „NAN” este interpretată ca un număr întreg (cu un prefix opțional „0” sau „0x” pentru a selecta baza 8 sau 16) care urmează să fie plasat în componenta mantisă a valorii returnate.

EXEMPLE

A se vedea exemplul de pe pagina de manual strtol(3); utilizarea funcțiilor descrise în această pagină de manual este similară.

CONSULTAȚI ȘI

atof(3), atoi(3), atol(3), nan(3), nanf(3), nanl(3), strfromd(3), strtol(3), strtoul(3)

TRADUCERE

Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.

5 februarie 2023 Pagini de manual de Linux 6.03