_atodbl, _atodbl_l, _atoldbl, _atoldbl_l, _atoflt _atoflt_l
Konvertiert eine Zeichenfolge in einen Double-Wert (_atodbl), um lange**_atoldbl**(Double) oder float (_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
);
Parameter
value
Das long double oder Float, Double Wert erzeugt durch das Konvertieren der Zeichenfolge in einen Gleitkommawert.Diese Werte werden in einer Struktur eingeschlossen.str
Die, die in einen Gleitkommawert zu konvertierende zu analysierende Zeichenfolge.locale
Das zu verwendende Gebietsschema.
Rückgabewert
Gibt 0 zurück, wenn erfolgreich; Fehlercodes für _UNDERFLOW oder _OVERFLOWwerden in der Headerdatei definiert, Math.h.
Hinweise
Diese Funktion konvertieren eine Zeichenfolge in einen Gleitkommawert.Der Unterschied zwischen diesen Funktionen und atof-Funktionsreihe ist, dass diese Funktionen nicht von Code generieren und somit nicht Hardware Ausnahmen auftreten.Stattdessen werden, Fehlerbedingungen als Fehlercode gemeldet.
Wenn eine Zeichenfolge eine gültige Interpretation nicht als Gleitkommazahl hat, wird value auf Null gesetzt, und der Rückgabewert ist Null.
Die Versionen dieser Funktionen mit dem _l Suffix sind identisch, mit der Ausnahme, dass sie verwenden den Gebietsschemaparameter, der anstelle des aktuellen Threads gebietsschemas übergeben wird.
Anforderungen
Routinen |
Erforderlicher Header |
---|---|
_atodbl, _atoldbl, _atoflt _atodbl_l, _atoldbl_l, _atoflt_l |
<stdlib.h> |
Beispiel
// 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;
}