_fcvt
Převede číslo s plovoucí desetinnou čárkou na řetězec. K dispozici je bezpečnější verze této funkce; viz ._fcvt_s
Syntaxe
char *_fcvt(
double value,
int count,
int *dec,
int *sign
);
Parametry
value
Číslo, které se má převést.
count
Počet číslic za desetinnou čárkou
dec
Ukazatel na uloženou pozici desetinné čárky.
sign
Ukazatel na indikátor uloženého znaménka.
Vrácená hodnota
_fcvt
vrátí ukazatel na řetězec číslic NULL
při chybě.
Poznámky
Funkce _fcvt
převede číslo s plovoucí desetinnou čárkou na řetězec znaků s ukončenou hodnotou null. Parametr value
je číslo s plovoucí desetinou čárkou, které se má převést. _fcvt
uloží číslice value
jako řetězec a připojí znak null (\0). Parametr count
určuje počet číslic, které se mají uložit za desetinnou čárkou. Nadbytečné číslice jsou zaokrouhleny na count
místa. Pokud je přesnost menší než count
číslice, řetězec je vycpaný nulami.
Celkový počet číslic vrácených znakem _fcvt
nesmí překročit _CVTBUFSIZE
.
V řetězci jsou uloženy pouze číslice. Pozice desetinné čárky a znaménka value
lze získat od dec
a podepsat po volání. Parametr dec
odkazuje na celočíselnou hodnotu; tato celočíselná hodnota dává pozici desetinné čárky vzhledem k začátku řetězce. Nulová nebo záporná celočíselná hodnota označuje, že desetinná čárka leží vlevo od první číslice. sign
Parametr odkazuje na celé číslo označující znaménko value
. Celé číslo je nastaveno na hodnotu 0, pokud value
je kladné a je nastaveno na nenulové číslo, pokud value
je 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ýsledky 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 spuštění povoleno pokračovat, errno
je nastavena na EINVAL
hodnotu 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 |
---|---|
_fcvt |
<stdlib.h> |
Další informace o kompatibilitě najdete v tématu Kompatibilita.
Příklad
// crt_fcvt.c
// compile with: /W3
// This program converts the constant
// 3.1415926535 to a string and sets the pointer
// buffer to point to that string.
#include <stdlib.h>
#include <stdio.h>
int main( void )
{
int decimal, sign;
char *buffer;
double source = 3.1415926535;
buffer = _fcvt( source, 7, &decimal, &sign ); // C4996
// Note: _fcvt is deprecated; consider using _fcvt_s instead
printf( "source: %2.10f buffer: '%s' decimal: %d sign: %d\n",
source, buffer, decimal, sign );
}
source: 3.1415926535 buffer: '31415927' decimal: 1 sign: 0
Viz také
Konverze dat
Podpora pro matematiku a plovoucí desetinou čárku
atof
, _atof_l
, , _wtof
_wtof_l
_ecvt
_gcvt