ECVT(3) | Podręcznik programisty Linuksa | ECVT(3) |
ecvt, fcvt - konwersja liczby zmiennoprzecinkowej na łańcuch
#include <stdlib.h>
char *ecvt(double number, int ndigits, int *decpt, int *sign);
char *fcvt(double number, int ndigits, int *decpt, int *sign);
Uwaga! To tłumaczenie może być nieaktualne!
Funkcja ecvt() przekształca liczbę number na łańcuch cyfr ndigits (gdzie ndigits jest ograniczone do zależnej od systemu wartości określonej przez precyzję typu double) zakończony znakiem NUL i zwraca wskaźnik do tego łańcucha. Najbardziej znacząca cyfra jest różna od zera, chyba że number wynosi zero. Najmniej znacząca cyfra jest zaokrąglana. Łańcuch nie zawiera kropki dziesiętnej, jednak pozycja kropki dziesiętnej względem początku łańcucha znajduje się w zmiennej *decpt. Ujemna wartość *decpt oznacza, że kropka dziesiętna znajduje się na lewo od początku łańcucha. Jeśli znak liczby number jest ujemny, to *sign przyjmuje wartość różną od zera, a w przeciwnym przypadku 0. Gdy number jest zerem, nie jest określone czy *decpt będzie równe 0 czy 1.
Funkcja fcvt() działa tak samo jak ecvt() z tym wyjątkiem, że ndigits określa liczbę cyfr po kropce dziesiętnej.
Zarówno funkcja ecvt() jak i fcvt() zwracają wskaźnik do statycznego łańcucha zawierającego reprezentację ASCII liczby number. Łańcuch statyczny jest nadpisywany po każdym wywołaniu ecvt() lub fcvt().
Funkcje te są przestarzałe. Zlecane jest używania sprintf() zamiast nich. Linuksowe libc4 i libc5 określały typ ndigits jako size_t. Nie wszystkie locale używają kropki jako znaku podstawy (`kropka dziesiętna').
SysVR2, XPG2
Powyższe tłumaczenie pochodzi z nieistniejącego już Projektu Tłumaczenia Manuali i może nie być aktualne. W razie zauważenia różnic między powyższym opisem a rzeczywistym zachowaniem opisywanego programu lub funkcji, prosimy o zapoznanie się z oryginalną (angielską) wersją strony podręcznika za pomocą polecenia:
Prosimy o pomoc w aktualizacji stron man - więcej informacji można znaleźć pod adresem http://sourceforge.net/projects/manpages-pl/.
1999-06-25 |