_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 _CVTBUFSIZE
wartoś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 NULL
wartość 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