Aracılığıyla paylaş


_atodbl, _atodbl_l, _atoldbl, _atoldbl_l, _atoflt _atoflt_l

Bir double bir dize dönüştürür (_atodbl), uzun çift (_atoldbl), veya 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
);

Parametreler

  • value
    Çift çift uzun veya değer dize bir kayan noktalı değere dönüştürme tarafından üretilen float.Bu değerler bir yapıda sarılır.

  • str
    Bir kayan noktalı değere dönüştürmek için ayrıştırılması dize.

  • locale
    Kullanılacak yerel ayarı.

Dönüş Değeri

Başarılı olursa; 0 döndürür olası hata kodları _UNDERFLOW veya _OVERFLOW, Math.h üstbilgi dosyasında tanımlı.

Notlar

Bu işlevler için kayan nokta değeri bir dize dönüştürür.Bu işlevler arasındaki fark ve atof ailesini ise bu işlevler kayan nokta kod oluşturmaz ve dolayısıyla donanım özel duruma neden değil.Bunun yerine, hata koşulları hata kodu olarak bildirilir.

Dize geçerli bir yorumu bir kayan nokta değeri yoksa, value sıfır ve return set sıfır değerdir.

Bu işlevler ile sürümlerini _l soneki yerine geçerli iş parçacığı yerel geçirilen yerel parametresi kullandıkları dışında aynı.

Gereksinimler

Yordamları

Gerekli başlık

_atodbl, _atoldbl, _atoflt

_atodbl_l, _atoldbl_l, _atoflt_l

<stdlib.h>

Örnek

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

Ayrıca bkz.

Başvuru

Veri Dönüştürme

Kayan nokta türü desteği

Yerel ayar

atof, _atof_l, _wtof, _wtof_l