CodeNet / Языки программирования / C / C++ / Linux/Unix / Справочник С/C++ для UNIX - Список функций
CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник С/C++ для UNIX - Список функций
CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник С/C++ для UNIX - Список функций
ecvt
ECVT
#include <stdlib.h> требуется только для
объявления функции
char *ecvt(value, ndigits, decptr,signptr);
double value; преобразуемое число
int ndigits; количество запоминаемых
цифр
int *decptr; указатель на запомненное
положение десятичной точки
int *signptr; указатель на запомненный
индикатор знака
Описание.
Функция ecvt преобразовывает число с плавающей точкой в
символьную строку. Value - это число с плавающей точкой, которое
должно быть преобразовано. Ecvt запоминает цифры ndigits из value
как строку и добавляет к ней нулевой символ ('\0'). Если количество
цифр в value превышает ndigits, последняя значащая цифра округля-
ется. Если цифр меньше, чем ndigits, строка дополняется нулями.
В строке хранятся только цифры. Положение десятичной точки
и знака в value может быть определено после вызова функции из
decptr и signptr. Аргумент decptr указывает на целое число, опре-
деляющее положение десятичной точки относительно начала строки. 0
или отрицательное значение означают, что десятичная точка распо-
ложена левее первой цифры. Аргумент signptr указывает на целое,
определяющее знак преобразуемого числа. Если signptr равно 0,
число положительное, иначе - отрицательное.
Возвращаемое значение.
Функция ecvt возвращает указатель на строку цифр. В случае
ошибки возвращаемого значения нет.
См.также atof, atoi, atol, fcvt, gcvt.
Замечание. Функции ecvt и fcvt используют для преобразова-
ния один и тот же статически распределенный буфер. Каждое обраще-
ние к одной из этих процедур уничтожает результат предыдущего об-
ращения.
Пример:
#include <stdlib.h>
int decimal, sign;
char *buffer;
int preciision=10;
buffer=ecvt(3.1415926535,precision,&decimal,&sign);
/*буфер содержит "3141592654",decimal=1,sign=0*/
