_ecvt
Převede double čísla na řetězec.Bezpečnější verze této funkce je k dispozici; see _ecvt_s.
char *_ecvt(
double value,
int count,
int *dec,
int *sign
);
Parametry
value
Číslo převést.count
Počet číslic, které jsou uloženy.dec
Uložené pozice desetinné čárky.sign
Znak převedený číslo.
Vrácená hodnota
_ecvtVrací ukazatel na řetězec číslic; NULL, pokud došlo k chybě.
Poznámky
_ecvt Funkce převede na řetězec znaků číslo s plovoucí desetinnou čárkou.value Je parametr 8bajtové číslo převést.Tato funkce ukládá až count číslic value jako řetězec a přidá znak null (\0).Pokud počet číslic v value přesahuje count, nejnižší číslice se zaokrouhlí.Pokud existují méně než count číslice řetězce je doplněno nulami.
Celkový počet číslic vrácené _ecvt nepřekročí _CVTBUFSIZE.
V řetězci jsou uloženy pouze číslice.Poloha desetinné čárky a znaménko value lze získat z dec a sign po volání.dec Parametr odkazuje na celočíselnou hodnotu udávající polohu desetinné čárky, s ohledem na začátku řetězce.Hodnota 0 nebo záporné celé číslo označuje, že desetinnou leží nalevo od první číslice.sign Parametr odkazuje na celé číslo označující znaménko čísla převedené.Pokud celočíselnou hodnotu 0, je číslo kladné.Jinak je záporné číslo.
Rozdíl mezi _ecvt a _fcvt je ve výkladu count parametr._ecvtinterpretuje count jako celkový počet číslic v výstupní řetězec, že _fcvt interpretuje count jako počet číslic za desetinnou čárkou.
_ecvta _fcvt použití jedné staticky přidělené vyrovnávací paměti pro převod.Každé volání jedné tyto rutiny ničí výsledek předchozí volání.
Tato funkce ověřuje jeho parametry.Pokud dec nebo sign hodnotu NULL, nebo count je 0, vyvolat neplatný parametr popisovače, jak je popsáno v Ověření parametru.Pokud je povoleno spuštění pokračovat, errno je nastavena na EINVAL a je vrácena hodnota NULL.
Požadavky
Function |
Požadované záhlaví |
---|---|
_ecvt |
<stdlib.h> |
Další informace o kompatibilitě v tématu Compatibility v úvodu.
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 );
}