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*/