_fcvt
Kayan noktalı sayıyı dizeye dönüştürür. Bu işlevin daha güvenli bir sürümü kullanılabilir; bkz _fcvt_s
. .
Sözdizimi
char *_fcvt(
double value,
int count,
int *dec,
int *sign
);
Parametreler
value
Dönüştürülecek sayı.
count
Ondalık ayırıcıdan sonraki basamak sayısı.
dec
Depolanan ondalık nokta konumuna işaret eden işaretçi.
sign
Depolanan işaret göstergesinin işaretçisi.
Dönüş değeri
_fcvt
hatayla NULL
birlikte basamak dizesine bir işaretçi döndürür.
Açıklamalar
İşlev, _fcvt
kayan noktalı bir sayıyı null ile sonlandırılan karakter dizesine dönüştürür. value
parametresi dönüştürülecek kayan noktalı sayıdır. _fcvt
basamaklarını value
dize olarak depolar ve null karakter ekler ('\0'). parametresi ondalık count
ayırıcıdan sonra depolanacak basamak sayısını belirtir. Fazla basamaklar yerlere yuvarlanır count
. Duyarlık basamaklarından daha count
azsa, dize sıfırlarla doldurulur.
tarafından _fcvt
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 dec
sonra alınıp işaretlenebilir. dec
parametresi bir tamsayı değerine işaret eder; bu tamsayı değeri, dizenin başlangıcına göre ondalık noktasının konumunu verir. Sıfır veya negatif tamsayı değeri, ondalık ayırıcının ilk basamuğun solunda olduğunu gösterir. parametresi sign
, işaretini value
gösteren bir tamsayıya işaret ediyor. Tamsayı pozitifse value
0 olarak ayarlanır ve negatifse value
sıfır olmayan bir sayıya ayarlanır.
ile _fcvt
arasındaki _ecvt
fark, parametresinin yorumlanmasındadırcount
. _ecvt
count
çı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 sonuçlarını yok eder.
Bu işlev parametrelerini doğrular. veya dec
sign
veya NULL
count
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
olarak ayarlanır EINVAL
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 |
---|---|
_fcvt |
<stdlib.h> |
Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.
Örnek
// crt_fcvt.c
// compile with: /W3
// This program converts the constant
// 3.1415926535 to a string and sets the pointer
// buffer to point to that string.
#include <stdlib.h>
#include <stdio.h>
int main( void )
{
int decimal, sign;
char *buffer;
double source = 3.1415926535;
buffer = _fcvt( source, 7, &decimal, &sign ); // C4996
// Note: _fcvt is deprecated; consider using _fcvt_s instead
printf( "source: %2.10f buffer: '%s' decimal: %d sign: %d\n",
source, buffer, decimal, sign );
}
source: 3.1415926535 buffer: '31415927' decimal: 1 sign: 0
Ayrıca bkz.
Veri dönüştürme
Matematik ve kayan nokta desteği
atof
, _atof_l
, _wtof
, _wtof_l
_ecvt
_gcvt