Udostępnij za pośrednictwem


_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 countwartość , 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 _CVTBUFSIZEwartoś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 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 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