_atodbl, _atodbl_l, _atoldbl, _atoldbl_l, _atoflt_l di _atoflt
Converte una stringa in un doppio (_atodbl), doppio lungo (_atoldbl), o mobile (_atoflt).
int _atodbl(
_CRT_DOUBLE * value,
char * str
);
int _atodbl_l (
_CRT_DOUBLE * value,
char * str,
locale_t locale
);
int _atoldbl(
_LDOUBLE * value,
char * str
);
int _atoldbl_l (
_LDOUBLE * value,
char * str,
locale_t locale
);
int _atoflt(
_CRT_FLOAT * value,
char * str
);
int _atoflt_l(
_CRT_FLOAT * value,
char * str,
locale_t locale
);
Parametri
value
Il doppio, il doppio lungo, o il valore float hanno prodotto converte la stringa a un valore a virgola mobile.Questi valori sono ancora inclusi in una struttura.str
La stringa da analizzare per convertire in un valore a virgola mobile.locale
le impostazioni locali da utilizzare.
Valore restituito
Restituisce 0 in caso di esito positivo; i codici di errore possibili sono _UNDERFLOW o _OVERFLOW, definito nel file di intestazione Math.h.
Note
Queste funzioni consentono di convertire una stringa in un valore a virgola mobile.La differenza tra queste funzioni e atof la famiglia di funzioni è che queste funzioni non generano codice a virgola mobile e pertanto non generano eccezioni hardware.Al contrario, le condizioni di errore segnalati come codice di errore.
Se una stringa non è un'interpretazione valida come valore a virgola mobile, value è impostato su zero e il valore restituito è zero.
le versioni di queste funzioni con _l il suffisso è identico con la differenza che utilizzano il parametro delle impostazioni locali passato alle impostazioni locali del thread corrente.
Requisiti
routine |
Intestazione di associazione |
---|---|
_atodbl, _atoldbl, _atoflt _atodbl_l, _atoldbl_l, _atoflt_l |
<definito> |
Esempio
// crt_atodbl.c
// Uses _atodbl to convert a string to a double precision
// floating point value.
#include <stdlib.h>
#include <stdio.h>
int main()
{
char str1[256] = "3.141592654";
char abc[256] = "abc";
char oflow[256] = "1.0E+5000";
_CRT_DOUBLE dblval;
_CRT_FLOAT fltval;
int retval;
retval = _atodbl(&dblval, str1);
printf("Double value: %lf\n", dblval.x);
printf("Return value: %d\n\n", retval);
retval = _atoflt(&fltval, str1);
printf("Float value: %f\n", fltval.f);
printf("Return value: %d\n\n", retval);
// A non-floating point value: returns 0.
retval = _atoflt(&fltval, abc);
printf("Float value: %f\n", fltval.f);
printf("Return value: %d\n\n", retval);
// Overflow.
retval = _atoflt(&fltval, oflow);
printf("Float value: %f\n", fltval.f);
printf("Return value: %d\n\n", retval);
return 0;
}