_ecvt
Konwertuje double numer na ciąg.Bardziej bezpieczna wersja ta funkcja jest dostępna; see _ecvt_s.
char *_ecvt(
double value,
int count,
int *dec,
int *sign
);
Parametry
value
Liczby są konwertowane.count
Liczba cyfr przechowywane.dec
Przechowywane położenie przecinka dziesiętnego.sign
Znak liczby przekonwertowane.
Wartość zwracana
_ecvtZwraca wskaźnik do ciąg cyfr; Wartość NULL, jeśli wystąpił błąd.
Uwagi
_ecvt Funkcja konwertuje liczbę zmiennoprzecinkową na ciąg znaków.value Parametru jest liczba zmiennoprzecinkowa do konwersji.Funkcja ta przechowuje się do count cyfry value jako ciąg znaków i dołącza znak null (\0).Jeśli liczba cyfr w value przekracza count, siódmy cyfra jest zaokrąglana.Jeżeli jest mniej niż count ciąg cyfr jest uzupełniony zerami.
Całkowita liczba cyfr zwrócony przez _ecvt nie przekroczy _CVTBUFSIZE.
Tylko cyfry są przechowywane w ciągu.Położenie przecinka dziesiętnego i znak value , można otrzymać od dec i sign po wywołaniu.dec Parametru wskazuje wartość całkowitą, podając położenie przecinka dziesiętnego, w odniesieniu do początku ciągu znaków.Wartość 0 lub ujemna liczba całkowita wskazuje, że leży przecinka dziesiętnego po lewej stronie pierwszej cyfry.sign Parametru wskazuje całkowitą, która wskazuje na znak liczby przekonwertowane.Jeśli wartość całkowitą 0, liczba jest dodatnia.W przeciwnym razie liczba jest ujemna.
Różnica między _ecvt i _fcvt jest w interpretacji count parametru._ecvtinterpretuje count jako całkowita liczba cyfr w ciągu danych wyjściowych, dlatego _fcvt interpretuje count jako liczba cyfr po przecinku.
_ecvti _fcvt użyć pojedynczego statycznie przydzielonego buforu do konwersji.Każde wywołanie do jednej z tych procedur niszczy wynik poprzednie wywołanie.
Funkcja ta sprawdza poprawność jego parametry.Jeśli dec lub sign ma wartość NULL, lub count jest równa 0, wywoływana jest funkcja obsługi nieprawidłowy parametr, jak opisano w Sprawdzanie poprawności parametru.Jeśli wykonanie jest dozwolone, aby kontynuować, errno jest ustawiona na EINVAL i zwracana jest wartość NULL.
Wymagania
Funkcja |
Wymaganego nagłówka |
---|---|
_ecvt |
<stdlib.h> |
Informacji dotyczących zgodności, zobacz zgodności we wprowadzeniu.
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 );
}