Sdílet prostřednictvím


_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čí valuecount, 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 countsign je NULL0, 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é

Převod dat
Podpora pro matematiku a plovoucí desetinou čárku
atof, _atof_l, _wtof, _wtof_l
_fcvt
_gcvt