_ecvt

Sayıyı double dizeye dönüştürür. Bu işlevin daha güvenli bir sürümü kullanılabilir; bkz _ecvt_s. .

Sözdizimi

char *_ecvt(
   double value,
   int count,
   int *dec,
   int *sign
);

Parametreler

value
Dönüştürülecek sayı.

count
Depolanan basamak sayısı.

dec
Depolanan ondalık nokta konumu.

sign
Dönüştürülen sayının işareti.

Dönüş değeri

_ecvt basamak dizesine bir işaretçi döndürür; NULL hata oluştuysa.

Açıklamalar

işlevi kayan _ecvt noktalı bir sayıyı karakter dizesine dönüştürür. value parametresi dönüştürülecek kayan noktalı sayıdır. Bu işlev en çok count basamak value sayısını dize olarak depolar ve null karakter ('\0') ekler. içindeki value basamak sayısı değerini aşarsa count, düşük sıralı basamak yuvarlanmış olur. Basamaktan count azsa dize sıfırlarla doldurulur.

tarafından _ecvt döndürülen toplam basamak sayısı değerini aşamaz _CVTBUFSIZE.

Dizede yalnızca basamaklar depolanır. Ondalık noktasının konumu ve işareti value çağrıdan sonra ve sign çağrıdan dec sonra elde edilebilir. parametresi, dec dizenin başına göre ondalık noktasının konumunu veren bir tamsayı değerini gösterir. 0 veya negatif tamsayı değeri, ondalık ayırıcının ilk basamuğun solunda olduğunu gösterir. parametresi, sign dönüştürülen sayının işaretini gösteren bir tamsayıya işaret eder. Tamsayı değeri 0 ise, sayı pozitiftir. Aksi takdirde, sayı negatiftir.

ile _fcvt arasındaki _ecvt fark, parametresinin yorumlanmasındadırcount. _ecvtcount çıkış dizesindeki _fcvt toplam basamak sayısı olarak, ondalık ayırıcıdan sonraki basamak sayısı olarak yorumlarcount.

_ecvt ve _fcvt dönüştürme için statik olarak ayrılmış tek bir arabellek kullanın. Bu yordamlardan birine yapılan her çağrı, önceki çağrının sonucunu yok eder.

Bu işlev parametrelerini doğrular. veya dec sign veya NULLcount 0 ise, Parametre doğrulama bölümünde açıklandığı gibi geçersiz parametre işleyicisi çağrılır. Yürütmenin devam etmesi için izin verilirse, errno EINVAL olarak ayarlanır ve NULL döndürülü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

İşlev Gerekli başlık
_ecvt <stdlib.h>

Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.

Ö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 );
}
source: 3.1415926535   buffer: '3141592654'  decimal: 1  sign: 0

Ayrıca bkz.

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