ecvt, fcvt - konwersja liczby zmiennoprzecinkowej na łańcuch
Standardowa biblioteka C (
libc,
-lc)
#include <stdlib.h>
[[deprecated]] char *ecvt(double number, int ndigits,
int *restrict decpt, int *restrict sign);
[[deprecated]] char *fcvt(double number, int ndigits,
int *restrict decpt, int *restrict sign);
ecvt(),
fcvt():
Since glibc 2.17
(_XOPEN_SOURCE >= 500 && ! (_POSIX_C_SOURCE >= 200809L))
|| /* glibc >= 2.20 */ _DEFAULT_SOURCE
|| /* glibc <= 2.19 */ _SVID_SOURCE
glibc 2.12 to glibc 2.16:
(_XOPEN_SOURCE >= 500 && ! (_POSIX_C_SOURCE >= 200112L))
|| _SVID_SOURCE
Before glibc 2.12:
_SVID_SOURCE || _XOPEN_SOURCE >= 500
Funkcja
ecvt() przekształca liczbę
number na
łańcuch cyfr
ndigits zakończony znakiem NULL
(gdzie
ndigits jest ograniczone do wartości zależnej od
systemu określonej przez precyzję typu
double) 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
wyjątkiem tego, ż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().
Informacje o pojęciach używanych w tym rozdziale można
znaleźć w podręczniku
attributes(7).
Interfejs |
Atrybut |
Wartość |
ecvt() |
Bezpieczeństwo wątkowe |
MT-Unsafe race:ecvt |
fcvt() |
Bezpieczeństwo wątkowe |
MT-Unsafe race:fcvt |
Oznaczona jako przestarzała w POSIX.1-2001. POSIX.1-2008 usuwa opis
funkcji
ecvt() i
fcvt(), rekomendując używanie
zamiast nich funkcji
sprintf(3) (chociaż preferowane może
być używanie
snprintf(3)).
Ne wszystkie języki używają kropki jako separatora
części całkowitej od części
ułamkowej liczby.
ecvt_r(3),
gcvt(3),
qecvt(3),
setlocale(3),
sprintf(3)
Autorami polskiego tłumaczenia niniejszej strony podręcznika
są: Adam Byrtek <
[email protected]>, Andrzej Krzysztofowicz
<
[email protected]> i Robert Luberda <
[email protected]>
Niniejsze tłumaczenie jest wolną dokumentacją.
Bliższe informacje o warunkach licencji można uzyskać
zapoznając się z
GNU
General Public License w wersji 3 lub nowszej. Nie przyjmuje się
ŻADNEJ ODPOWIEDZIALNOŚCI.
Błędy w tłumaczeniu strony podręcznika prosimy
zgłaszać na adres listy dyskusyjnej
[email protected]