_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;
}
  

Siehe auch

Referenz

Datenkonvertierung

Gleitkommaunterstützung

Gebietsschema

atof, _atof_l, _wtof, _wtof_l