Aracılığıyla paylaş


_atodbl, _atodbl_l, _atoldbl, _atoldbl_l, _atoflt, _atoflt_l

Bir dizeyi çifte (_atodbl), uzun çifte (_atoldbl) veya float (_atoflt) değerine dönüştürür.

Sözdizimi

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, const char * str );
int _atoflt_l( _CRT_FLOAT * value, const char * str, _locale_t locale );

Parametreler

value
Dize bir kayan nokta değerine dönüştürülerek üretilen çift, uzun çift veya kayan değer. Bu değerler bir yapıda sarmalanmıştır.

str
Kayan nokta değerine dönüştürmek için ayrıştırılacak dize.

locale
Kullanılacak yerel ayar.

Dönüş değeri

Başarılı olursa 0 döndürür. Olası hata kodları, _UNDERFLOW math.h> üst bilgi dosyasında <tanımlanan veya _OVERFLOWşeklindedir.

Açıklamalar

Bu işlevler bir dizeyi kayan nokta değerine dönüştürür. Bu işlevlerle atof işlev ailesi arasındaki fark, bu işlevlerin kayan nokta kodu oluşturmaz ve donanım özel durumlarına neden olmaz. Bunun yerine, hata koşulları hata kodları olarak bildirilir.

Bir dizenin kayan nokta değeri olarak geçerli bir yorumu yoksa, value sıfır olarak ayarlanır ve dönüş değeri sıfır olur.

Bu işlevlerin son ekine _l sahip sürümleri, geçerli iş parçacığı yerel ayarı yerine geçirilen parametreyi locale kullanmaları dışında, soneki olmayan sürümler ile aynıdır.

Varsayılan olarak, bu işlevin genel durumunun kapsamı uygulama olarak belirlenmiştir. Bu davranışı değiştirmek için bkz. CRT'de Genel durum.

Gereksinimler

Rutin 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;
}
Double value: 3.141593
Return value: 0

Float value: 3.141593
Return value: 0

Float value: 0.000000
Return value: 0

Float value: inf
Return value: 3

Ayrıca bkz.

Veri dönüştürme
Matematik ve kayan nokta desteği
Yerel ayar
atof, _atof_l, _wtof, _wtof_l