strtold, _strtold_l, wcstold, _wcstold_l

Dizeleri uzun bir çift duyarlıklı kayan nokta değerine dönüştürür.

Sözdizimi

long double strtold(
   const char *strSource,
   char **endptr
);
long double _strtold_l(
   const char *strSource,
   char **endptr,
   _locale_t locale
);
long double wcstold(
   const wchar_t *strSource,
   wchar_t **endptr
);
long double wcstold_l(
   const wchar_t *strSource,
   wchar_t **endptr,
   _locale_t locale
);

Parametreler

strSource
Dönüştürülecek null ile sonlandırılan dize.

endptr
Taramayı durduran karakterin işaretçisi.

locale
Kullanılacak yerel ayar.

Dönüş değeri

strtold , kayan noktalı sayının değerini olarak long doubledöndürür, ancak gösterimin taşmasına neden olacağı durumlar dışında işlev +/-HUGE_VALLdöndürür. işareti HUGE_VALL , temsil edilmeyecek değerin işaretiyle eşleşir. strtold dönüştürme gerçekleştirilemiyorsa veya bir yetersizlik oluşursa 0 döndürür.

wcstold ile benzer değerler strtolddöndürür. Her iki işlev için de taşma errno veya yetersizlik oluşursa olarak ayarlanır ERANGE ve parametre doğrulamasında açıklandığı gibi geçersiz parametre işleyicisi çağrılır.

İade kodları hakkında daha fazla bilgi için bkz. errno, _doserrno, _sys_errlistve _sys_nerr.

Açıklamalar

Her işlev giriş dizesini strSource öğesine long doubledönüştürür. İşlev, strtold dizeyi strSource bir sayının parçası olarak tanıyamayan ilk karakterde okumayı durdurur. Sonlandırıcı null karakter olabilir. öğesinin strtold geniş karakterli sürümüdür wcstold; strSource bağımsız değişkeni geniş karakterli bir dizedir. Aksi takdirde, bu işlevler aynı şekilde davranı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.

Genel metin yordamı eşlemeleri

TCHAR.H yordamı _UNICODE ve _MBCS tanımlanmadı _MBCS tanımlanan _UNICODE tanımlanan
_tcstold strtold strtold wcstold
_tcstold_l _strtold_l _strtold_l _wcstold_l

LC_NUMERIC Geçerli yerel ayarın kategori ayarı, içindeki strSourceradix karakterinin tanınmasını belirler. Daha fazla bilgi için bkz. setlocale, _wsetlocale. Soneki _l olmayan işlevler geçerli yerel ayarı _strtold_l kullanır ve _wcstold_l ile aynıdır _strtold ve _wcstold bunun yerine geçirilen yerel ayarı kullanırlar. Daha fazla bilgi için bkz . Yerel Ayar.

değilse endptr NULL, taramayı durduran karakterin işaretçisi tarafından endptrişaret edilen konumda depolanır. Dönüştürme gerçekleştirilemiyorsa (geçerli basamak bulunamadıysa veya geçersiz bir taban belirtildiyse), değeri strSource tarafından endptrişaret edilen konumda depolanır.

strtoldstrSource aşağıdaki biçimdeki bir dizeye işaret etmesini bekler:

[whitespace][][digitssign][.digits] [{deD | | E | }[sign]]digits

bir whitespace , yoksayılan boşluk ve sekme karakterlerinden oluşabilir; sign artı (+) veya eksi (- ) olabilir ve digits bir veya daha fazla ondalık basamaktır. Radix karakterinden önce hiç basamak görünmüyorsa, radix karakterinden sonra en az bir basamak görünmelidir. Ondalık basamakları, giriş harfi (d, D, eveya E) ve isteğe bağlı olarak imzalanan bir tamsayıdan oluşan bir üs takip edebilir. Üstel parça veya radix karakteri görüntülenmezse, dizedeki son basamaktan sonra gelen bir radix karakteri varsayılır. Bu forma uymayan ilk karakter taramayı durdurur.

Gereksinimler

Yordam Gerekli başlık
strtold, _strtold_l <stdlib.h>
wcstold, _wcstold_l <stdlib.h> veya <wchar.h>

Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.

Örnek

// crt_strtold.c
// Build with: cl /W4 /Tc crt_strtold.c
// This program uses strtold to convert a
// string to a long double-precision value.

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

int main( void )
{
   char *string;
   char *stopstring;
   long double x;

   string = "3.1415926535898This stopped it";
   x = strtold(string, &stopstring);
   printf("string = %s\n", string);
   printf("   strtold = %.13Lf\n", x);
   printf("   Stopped scan at: %s\n\n", stopstring);
}
string = 3.1415926535898This stopped it
   strtold = 3.1415926535898
   Stopped scan at: This stopped it

Ayrıca bkz.

Veri dönüştürme
Matematik ve kayan nokta desteği
Çok baytlı karakter dizilerinin yorumlanması
Yerel ayar
Sayısal değer işlevlerine dize
strtod, _strtod_l, wcstod, _wcstod_l
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