ecvt(3)

НАИМЕНОВАНИЕ
ecvt, fcvt - преобразование числа с плавающей точкой в строку

БИБЛИОТЕКА
Стандартная библиотека языка 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);

    Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):

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

ОПИСАНИЕ
Функция ecvt() преобразует number в строку с завершающим null-символом ndigits цифр (количество ndigits усекается до пределов точности, определённых форматом double) и возвращает указатель на строку. Самый старший разряд полученного числа не будет равен нулю, если только само число number не равно нулю. Самый младший разряд округляется. Строка сама по себе не содержит разделителя целой и дробной части, однако позиция разделителя относительно начала строки сохраняется в *decpt. Отрицательное значение *decpt означает, что разделитель находится слева от начала строки. Если число number отрицательное, то *sign устанавливается в ненулевое значение, иначе равно нулю. Если number равно нулю, то не определено, равен ли *decpt 0 или 1.

Функция fcvt() аналогична ecvt(), за исключением того, что ndigits указывает число цифр после разделителя.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
Обе функции, ecvt() и fcvt(), возвращают указатель на статическую строку, содержащую ASCII-представление number. Статическая строка перезаписывается каждый раз при вызове ecvt() или fcvt().

АТРИБУТЫ
Описание терминов данного раздела смотрите в attributes(7).
Интерфейс | Атрибут | Значение
ecvt() | Безвредность в нитях | MT-Unsafe race:ecvt
fcvt() | Безвредность в нитях | MT-Unsafe race:fcvt

СТАНДАРТЫ
Отсутствуют.

ИСТОРИЯ
SVr2; отмечены в POSIX.1-2001 как УСТАРЕВШИЕ. В POSIX.1-2008 спецификации ecvt() и fcvt() удалены, вместо них рекомендуется использовать sprintf(3) (однако snprintf(3) может быть предпочтительнее).

ПРИМЕЧАНИЯ
Не все локали используют точку в качестве разделителя целой и дробной части («десятичная точка»).

СМОТРИТЕ ТАКЖЕ
ecvt_r(3), gcvt(3), qecvt(3), setlocale(3), sprintf(3)

ПЕРЕВОД
Русский перевод этой страницы руководства разработал(и) Azamat Hackimov <azamat.hackimov@gmail.com>, Yuri Kozlov <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>

Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских переводчиков (debian-l10n-russian@lists.debian.org).