_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 valuegö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. _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 sonuçlarını 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 olarak ayarlanır EINVALve 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