Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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