Udostępnij za pośrednictwem


_fcvt

Konwertuje liczbę zmiennoprzecinkową na ciąg. Dostępna jest bezpieczniejsza wersja tej funkcji; zobacz _fcvt_s.

Składnia

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

Parametry

value
Liczba do przekonwertowania.

count
Liczba cyfr po przecinku dziesiętny.

dec
Wskaźnik do przechowywanej pozycji przecinka dziesiętnego.

sign
Wskaźnik do przechowywanego wskaźnika znaku.

Wartość zwracana

_fcvt Zwraca wskaźnik do ciągu cyfr po NULL błędzie.

Uwagi

Funkcja _fcvt konwertuje liczbę zmiennoprzecinkową na ciąg znaków zakończony o wartości null. Parametr value jest liczbą zmiennoprzecinkową, która ma zostać przekonwertowana. _fcvt przechowuje cyfry value jako ciąg i dołącza znak o wartości null ('\0'). Parametr count określa liczbę cyfr, które mają być przechowywane po przecinku dziesiętny. Nadmiarowe cyfry są zaokrąglane do count miejsc. Jeśli jest mniej niż count cyfry precyzji, ciąg jest wypełniony zerami.

Całkowita liczba cyfr zwróconych przez _fcvt element nie przekroczy _CVTBUFSIZEwartości .

Tylko cyfry są przechowywane w ciągu. Położenie punktu dziesiętnego i znak znaku można uzyskać od dec i podpisać value po wywołaniu. Parametr dec wskazuje wartość całkowitą. Ta wartość całkowita daje położenie punktu dziesiętnego względem początku ciągu. Wartość zero lub ujemna liczba całkowita wskazuje, że punkt dziesiętny znajduje się po lewej stronie pierwszej cyfry. Parametr sign wskazuje liczbę całkowitą wskazującą znak value. Liczba całkowita jest ustawiona na 0, jeśli value jest dodatnia i jest ustawiona na liczbę niezerową, jeśli value jest ujemna.

Różnica między _ecvt i _fcvt jest w interpretacji parametru count . _ecvt interpretuje count jako łączną liczbę cyfr w ciągu wyjściowym, natomiast _fcvt interpretuje count jako liczbę cyfr po przecinku dziesiętnego.

_ecvt i _fcvt użyj pojedynczego statycznie przydzielonego buforu do konwersji. Każde wywołanie jednej z tych procedur niszczy wyniki poprzedniego wywołania.

Ta funkcja weryfikuje jego parametry. Jeśli dec parametr lub sign ma NULLwartość lub count jest 0, wywoływana jest nieprawidłowa procedura obsługi parametrów, zgodnie z opisem w temacie Weryfikacja parametrów. Jeśli wykonywanie jest dozwolone do kontynuowania, errno jest ustawione na EINVAL, i NULL jest zwracany.

Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.

Wymagania

Function Wymagany nagłówek
_fcvt <stdlib.h>

Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.

Przykład

// 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

Zobacz też

Konwersja danych
Obsługa obliczeń matematycznych i zmiennoprzecinkowych
atof, , _atof_l, , _wtof_wtof_l
_ecvt
_gcvt