_ecvt
Dönüştüren bir double bir dize numarası.Bu işlev, daha güvenli bir sürümünü kullanılabilir; see _ecvt_s.
char *_ecvt(
double value,
int count,
int *dec,
int *sign
);
Parametreler
value
Dönüştürülecek sayı.count
Depolanan basamak sayısı.dec
Ondalık noktasının konumunu depolanan.sign
Dönüştürülen sayının işareti.
Dönüş Değeri
_ecvtrakam dizesi için bir işaretçi döndürür; BOŞ bir hata oluştu.
Notlar
_ecvt İşlevi bir kayan noktalı sayı bir karakter dizesine dönüştürür.value Dönüştürülecek kayan noktalı sayı parametresidir.Bu işlev kadar depolar count rakamını value bir dize olarak ve boş karakter ('\0') ekler.Basamak sayısını value uzun count, alt sıra basamak yuvarlanır.Varsa daha az count basamak, dize sıfır koyarak azsa.
Toplam tarafından döndürülen basamak sayısı _ecvt değil aşılacak _CVTBUFSIZE.
Yalnızca rakam dizesi içinde saklanır.Ondalık noktası ve işareti konumunu value den alınan dec ve sign çağrısının.dec Parametresi işaret dizenin başı açısından ondalık noktasının konumunu veren bir tamsayı değeri için.İçinde 0 veya eksi tamsayı, ondalık noktasının ilk basamak solunda bulunan gösterir.sign Parametresi işaret dönüştürülmüş sayının işaretini belirten bir tamsayı.Tamsayı değeri 0 ise, pozitif bir sayıdır.Aksi takdirde, sayı negatif olur.
Arasındaki fark _ecvt ve _fcvt 'ın yorumu olan count parametresi._ecvtyorumlar count çıkış dizesi basamak sayısı olarak ise _fcvt yorumlar count ondalık basamak sayısı.
_ecvtve _fcvt tek bir statik olarak ayrılan arabelleğe dönüşümü için kullanın.Bu yordamlar için her arama sonucu önceki çağrı bozar.
Bu işlev parametreleri doğrular.dec Veya sign , null veya count 0'dır, geçersiz parametre işleyicisi, açıklandığı şekilde çağrılır Parametre Doğrulama.Yürütülmesine devam etmek için izin verilip verilmediğini errno ayarlamak EINVAL ve null döndürülür.
Gereksinimler
İşlev |
Gerekli başlık |
---|---|
_ecvt |
<stdlib.h> |
Daha fazla uyumluluk bilgileri için bkz: Uyumluluk giriş.
Örnek
// crt_ecvt.c
// compile with: /W3
// This program uses _ecvt to convert a
// floating-point number to a character string.
#include <stdlib.h>
#include <stdio.h>
int main( void )
{
int decimal, sign;
char *buffer;
int precision = 10;
double source = 3.1415926535;
buffer = _ecvt( source, precision, &decimal, &sign ); // C4996
// Note: _ecvt is deprecated; consider using _ecvt_s instead
printf( "source: %2.10f buffer: '%s' decimal: %d sign: %d\n",
source, buffer, decimal, sign );
}