ecvt, fcvt -
преобразование
числа с
плавающей
точкой в
строку
Standard C library (
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
Функция
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 <
[email protected]>, Yuri Kozlov
<
[email protected]> и Иван
Павлов <
[email protected]>
Этот
перевод
является
бесплатной
документацией;
прочитайте
Стандартную
общественную
лицензию GNU
версии 3
или более
позднюю,
чтобы
узнать об
условиях
авторского
права. Мы не
несем
НИКАКОЙ
ОТВЕТСТВЕННОСТИ.
Если вы
обнаружите
ошибки в
переводе
этой
страницы
руководства,
пожалуйста,
отправьте
электронное
письмо на
[email protected]