Aracılığıyla paylaş


strtod, _strtod_l, wcstod, _wcstod_l

Dizeleri ç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 boş sonlandırılmış dize.

  • endptr
    Taramayı durdurur karakter için işaretçi.

  • locale
    Kullanılacak yerel ayarı.

Dönüş Değeri

strtodne zaman gösterimi, büyük/küçük harf işlevini verir bir taşma neden dışında kayan noktalı sayı değerini döndürür +/ –HUGE_VAL.İşareti HUGE_VAL temsil edilemeyen değerinin işareti ile eşleşir.strtod0 değerini döndürür dönüştürme yapılabilir veya bir Yetersizlik durumu oluşur.

wcstodanalogously çok değerlerini döndürür strtod.Her iki işlevi için errno ayarlamak ERANGE taşma veya yetersiz gelme oluşur ve geçersiz parametre işleyicisi, açıklandığı şekilde çağrılır Parametre doğrulama.

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

Notlar

Giriş dizesi her işlevi dönüştürür nptr için bir double.strtod Dönüştürür işlev nptr bir çift duyarlıklı değer.strtoddize okuma başlıyor nptr ilk karakterinde bir numarasının bir parçası tanıdığını olamaz.Bu sondaki boş karakter olabilir.wcstodgeniş karakter sürümü strtod; kendi nptr bağımsız değişkeni olan bir geniş karakter dizesi.Bu işlevler aynı şekilde aksi davranırlar.

Genel metin yordamı eşlemeleri

TCHAR.H yordamına girildi

_UNICODE & _mbcs tanımlı değil

Tanımlanan _mbcs

Tanımlanan _UNICODE

_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_laynıdır _strtod_l yerine geçirilen yerel kullandıkları olmasıdır.Daha fazla bilgi için bkz. Yerel ayar.

endptr Değil NULL, tarama durdu karakter için bir işaretçi olarak gösterilen konumda depolanan endptr.Dönüştürme işlemi, (geçerli bir basamak bulunamadı veya geçersiz bir temel belirtildi) değerini nptr göre sıralanmasını konumunda depolanan endptr.

strtodbeklediği nptr aşağıdaki biçimde bir dizeye işaret edecek şekilde:

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

A whitespace göz ardı edilir; boşluk ve sekme karakterleri oluşabilir signya artı (+) veya eksi (–); ve digits bir veya daha fazla ondalık basamağı olan.Hiç basamak önce taban karakter görünüyorsa, en az bir sayı tabanı karakterin arkasına gelmelidir.Ondalık basamak bir tanıtım harfi oluşan bir üs izlenebilir (d, D, e, veya E) ve isteğe bağlı olarak imzalı tamsayı.Üstel bir parçası ya da bir sayı tabanı karakter görüntülenirse, taban karakter dizesindeki son basamağını gelmesini kabul edilir.Bu form için uygun değil ilk karakter taramayı durdurur.

Gereksinimler

Yordamı

Gerekli başlık

strtod, _strtod_l

<stdlib.h>

wcstod, _wcstod_l

<stdlib.h> veya <wchar.h>

Ek uyumluluk bilgileri için bkz: Uyumluluk giriş.

Ö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 türü desteği

Yorumunu çok baytlı karakter dizileri

Yerel ayar

Sayısal değer işlevler dize

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