Partager via


_atodbl, _atodbl_l, _atoldbl, _atoldbl_l, _atoflt_l de _atoflt

Convertit une chaîne en double (_atodbl), au long double (_atoldbl), ou en une valeur 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
);

Paramètres

  • value
    Le double, long double, ou valeur float produite lors de la conversion la chaîne en valeur à virgule flottante.ces valeurs sont encapsulées dans une structure.

  • str
    La chaîne à analyser pour convertir une valeur à virgule flottante.

  • locale
    Les paramètres régionaux à utiliser.

Valeur de retour

Retourne 0 si l'opération a réussi ; les codes d'erreur possibles sont _UNDERFLOW ou _OVERFLOW, défini dans le fichier d'en-tête Math.h.

Notes

Ces fonctions et convertissent une chaîne en valeur à virgule flottante.La différence entre ces fonctions et la famille d' atof des fonctions est que ces fonctions ne génèrent pas de code à virgule flottante et par conséquent n'entraînent pas les exceptions de matériel.À la place, les conditions d'erreur sont stockées comme code d'erreur.

Si une chaîne n'a pas de traduction valide comme valeur à virgule flottante, value est la valeur zéro et la valeur de retour est zéro.

Les versions de ces fonctions par le suffixe d' _l sont identiques mais elles utilisent le paramètre de paramètres régionaux passé au lieu des paramètres régionaux du thread courant.

Configuration requise

routines

en-tête requis

_atodbl, _atoldbl, _atoflt

_atodbl_l, _atoldbl_l, _atoflt_l

<stdlib.h>

Exemple

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

Voir aussi

Référence

Conversion de données

Support à virgule flottante

Paramètres régionaux

atof, _atof_l, _wtof, _wtof_l