_ecvt
Konwertuje double
liczbę na ciąg. Dostępna jest bezpieczniejsza wersja tej funkcji; zobacz _ecvt_s
.
Składnia
char *_ecvt(
double value,
int count,
int *dec,
int *sign
);
Parametry
value
Liczba do przekonwertowania.
count
Liczba przechowywanych cyfr.
dec
Zapisano położenie przecinka dziesiętnego.
sign
Znak przekonwertowanego numeru.
Wartość zwracana
_ecvt
zwraca wskaźnik do ciągu cyfr; NULL
jeśli wystąpił błąd.
Uwagi
Funkcja _ecvt
konwertuje liczbę zmiennoprzecinkową na ciąg znaków. Parametr value
jest liczbą zmiennoprzecinkową, która ma zostać przekonwertowana. Ta funkcja przechowuje maksymalnie count
cyfry value
jako ciąg i dołącza znak null ('\0'). Jeśli liczba cyfr w value
obiekcie przekracza count
wartość , cyfra o niskiej kolejności jest zaokrąglona. Jeśli liczba cyfr jest mniejsza niż count
, ciąg jest wypełniony zerami.
Całkowita liczba cyfr zwróconych przez _ecvt
element nie przekroczy _CVTBUFSIZE
wartości .
Tylko cyfry są przechowywane w ciągu. Położenie punktu dziesiętnego i znaku value
można uzyskać od dec
i sign
po wywołaniu. Parametr dec
wskazuje wartość całkowitą dającą położenie punktu dziesiętnego względem początku ciągu. Wartość 0 lub ujemna liczba całkowita wskazuje, że punkt dziesiętny znajduje się po lewej stronie pierwszej cyfry. Parametr sign
wskazuje liczbę całkowitą, która wskazuje znak przekonwertowanej liczby. Jeśli wartość całkowita to 0, liczba jest dodatnia. W przeciwnym razie liczba 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 wynik 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 zwracane.
Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.
Wymagania
Function | Wymagany nagłówek |
---|---|
_ecvt |
<stdlib.h> |
Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.
Przykład
// 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
Zobacz też
Konwersja danych
Obsługa obliczeń matematycznych i zmiennoprzecinkowych
atof
, , _atof_l
, , _wtof
_wtof_l
_fcvt
_gcvt