_ecvt
double
Převede číslo na řetězec. K dispozici je bezpečnější verze této funkce; viz ._ecvt_s
Syntaxe
char *_ecvt(
double value,
int count,
int *dec,
int *sign
);
Parametry
value
Číslo, které se má převést.
count
Počet uložených číslic
dec
Uložená pozice desetinné čárky
sign
Znaménko převedeného čísla
Vrácená hodnota
_ecvt
vrátí ukazatel na řetězec číslic; NULL
pokud došlo k chybě.
Poznámky
Funkce _ecvt
převede číslo s plovoucí desetinnou čárkou na řetězec znaků. Parametr value
je číslo s plovoucí desetinou čárkou, které se má převést. Tato funkce ukládá až count
číslice value
jako řetězec a připojí znak null (\0). Pokud počet číslic překročí value
count
, zaokrouhlí se číslice s nízkým pořadím. Pokud existuje méně než count
číslic, řetězec je vycpaný nulami.
Celkový počet číslic vrácených znakem _ecvt
nesmí překročit _CVTBUFSIZE
.
V řetězci jsou uloženy pouze číslice. Pozici desetinné čárky a znak desetinné value
čárky lze získat z dec
volání a sign
za voláním. Parametr dec
odkazuje na celočíselnou hodnotu, která dává pozici desetinné čárky vzhledem k začátku řetězce. 0 nebo záporná celočíselná hodnota označuje, že desetinná čárka leží vlevo od první číslice. Parametr sign
odkazuje na celé číslo, které označuje znaménko převedeného čísla. Pokud je celočíselná hodnota 0, je číslo kladné. V opačném případě je číslo záporné.
Rozdíl mezi _ecvt
parametrem a _fcvt
je v interpretaci parametru count
. _ecvt
interpretuje count
jako celkový počet číslic ve výstupním řetězci, zatímco _fcvt
interpretuje count
jako počet číslic za desetinnou čárkou.
_ecvt
a _fcvt
pro převod použijte jednu staticky přidělenou vyrovnávací paměť. Každé volání jedné z těchto rutin zničí výsledek předchozího volání.
Tato funkce ověří své parametry. Pokud dec
je nebo je nebo count
sign
je NULL
0, vyvolá se neplatná obslužná rutina parametru, jak je popsáno v ověření parametru. Pokud je povoleno pokračovat spuštěním, errno
je nastaveno na hodnotu EINVAL a NULL
je vrácena.
Ve výchozím nastavení je globální stav této funkce vymezen na aplikaci. Chcete-li toto chování změnit, přečtěte si téma Globální stav v CRT.
Požadavky
Function | Požadovaný hlavičkový soubor |
---|---|
_ecvt |
<stdlib.h> |
Další informace o kompatibilitě najdete v tématu Kompatibilita.
Příklad
// 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
Viz také
Konverze dat
Podpora pro matematiku a plovoucí desetinou čárku
atof
, _atof_l
, , _wtof
_wtof_l
_fcvt
_gcvt