Aracılığıyla paylaş


strtod, _strtod_l, wcstod, _wcstod_l

Dizeler çift duyarlıklı değerine dönüştürür.

double strtod(
   const char *nptr,
   char **endptr 
);
double _strtod_l(
   const char *nptr,
   char **endptr,
   _locale_t locale
);
double wcstod(
   const wchar_t *nptr,
   wchar_t **endptr 
);
double wcstod_l(
   const wchar_t *nptr,
   wchar_t **endptr,
   _locale_t locale
);

Parametreler

  • nptr
    Dönüştürmek için null ile sonlandırılmış dize.

  • endptr
    Taramayı durduran karakter işaretçisi.

  • locale
    Kullanılacak yerel ayar.

Dönüş Değeri

strtod işlevin +/ –HUGE_VAL döndürdüğü durumda, gösterimin bir taşma neden olduğu zaman dışında, kayan nokta sayı değerini döndürür.HUGE_VAL işareti temsil edilemeyen değerin işareti ile eşleşir.strtod dönüştürme gerçekleştirilemeyiorsa veya bir yetersizlik durumu oluşursa 0 döndürür.

wcstod, benzer olarak strtod öğesine değerleri döndürür.Her iki işlev için de, Parametre Doğrulama içinde açıklandığı gibi, taşma veya yetersiz gelme oluşması ve geçersiz parametre işleyici çağrılması durumunda errno, ERANGE olarak ayarlanır.

Bkz: _doserrno, hatano, _sys_errlist ve _sys_nerr bu ve diğer dönüş kodları hakkında daha fazla bilgi için.

Notlar

Her işlev nptr giriş dizesini bir double öğesine dönüştürür.strtod İşlev dönüştürür nptr bir çift duyarlıklı değer.strtod bir sayının parçası olarak tanıyamadığı ilk karakterde nptr dizesini okumayı durdurur.Bu sondaki boş karakter olabilir.wcstod, strtod öğesinin geniş karakterli sürümüdür; nptr geniş karakterli bir dizedir.Bu işlevler, aksi halde aynı şekilde davranır.

Genel Metin Yordam Eşleşmeleri

TCHAR.H yordamı

_UNICODE & _MBCS tanımlanmamış

_MBCS tanımlanmış

_UNICODE tanımlanmış

_tcstod

strtod

strtod

wcstod

_tcstod_l

_strtod_l

_strtod_l

_wcstod_l

LC_NUMERIC Kategori geçerli yerel ayarı belirler tanıma sayı tabanı karakterinin nptr*;* daha fazla bilgi için bkz: setlocale.İşlevleri olmadan _l soneki kullanan yerel; _strtod_l aynı _strtod_l yerine geçirilen yerel ayarları kullanmasını dışında.Daha fazla bilgi için bkz. Yerel Ayar.

endptr öğesi NULL değilse, taramayı durduran karaktere ait bir işaretçi endptr tarafından işaret edilen konumda depolanır.Dönüştürme gerçekleştirilemezse (geçerli hiç basamak bulunamamış veya geçersiz bir taban belirtilmişse), nptr öğesinin değeri endptr tarafından işaret edilen konumda depolanır.

strtod , nptr aşağıdaki biçimin bir dizesine işaret etmeyei bekler:

[whitespace] [sign] [digits] [.digits] [ {d | D | e | E}[sign]digits]

whitespace, yoksayılan boşluk ve sekme karakterlerinden oluşabilir; sign, artı (+) veya eksidir (–); digits ise bir ya da daha fazla ondalık basamaktır.Taban karakterden önce bir basamak görüntülenmezse, taban karakterden sonra en az bir basamak görüntülenmelidir.Ondalık basamaklardan sonra bir tanıtıcı harften (d, D , e veya E ) ve isteğe bağlı olarak imzalı bir tamsayıdan oluşan bir üs gelebilir.Üstel bir parça veya bir taban karakter görüntülenmezse, taban karakterin dizedeki son basamağı izlediği varsayılır.Bu forma uymayan ilk karakter taramayı durdurur.

Gereksinimler

Yordam

Gerekli başlık

strtod, _strtod_l

<stdlib.h>

wcstod, _wcstod_l

<string.h> veya <wchar.h>

Ek uyumluluk bilgileri için Giriş altındaki Uyumluluk bölümüne bakın.

Örnek

// crt_strtod.c
// This program uses strtod to convert a
// string to a double-precision value; strtol to
// convert a string to long integer values; and strtoul
// to convert a string to unsigned long-integer values.
//

#include <stdlib.h>
#include <stdio.h>

int main( void )
{
   char   *string, *stopstring;
   double x;
   long   l;
   int    base;
   unsigned long ul;

   string = "3.1415926This stopped it";
   x = strtod( string, &stopstring );
   printf( "string = %s\n", string );
   printf("   strtod = %f\n", x );
   printf("   Stopped scan at: %s\n\n", stopstring );

   string = "-10110134932This stopped it";
   l = strtol( string, &stopstring, 10 );
   printf( "string = %s\n", string );
   printf("   strtol = %ld\n", l );
   printf("   Stopped scan at: %s\n\n", stopstring );

   string = "10110134932";
   printf( "string = %s\n", string );
 
   // Convert string using base 2, 4, and 8:
   for( base = 2; base <= 8; base *= 2 )
   {
      // Convert the string:
      ul = strtoul( string, &stopstring, base );
      printf( "   strtol = %ld (base %d)\n", ul, base );
      printf( "   Stopped scan at: %s\n", stopstring );
   }
}
  

.NET Framework Eşdeğeri

System::Convert::ToDouble

Ayrıca bkz.

Başvuru

Veri Dönüştürme

Kayan Nokta Desteği

Çok Baytlı Karakter Sıralarının Yorumu

Yerel Ayar

Sayısal Değer İşlevleri Dizesi

strtol, wcstol, _strtol_l, _wcstol_l

strtoul, _strtoul_l, wcstoul, _wcstoul_l

atof, _atof_l, _wtof, _wtof_l

localeconv

_create_locale, _wcreate_locale

_free_locale