_ecvt
Преобразует значение типа double в строку. Существует более безопасная версия этой функции; см. раздел _ecvt_s.
char *_ecvt(
double value,
int count,
int *dec,
int *sign
);
Параметры
value
Число, которое нужно преобразовать.count
Количество сохраненных цифр.dec
Сохраненная позиция десятичной запятой.sign
Знак преобразованного числа.
Возвращаемое значение
_ecvt возвращает указатель на строку цифр; NULL в случае возникновения ошибки.
Заметки
Функция _ecvt преобразует число с плавающей запятой в строку символов. Параметр value число с плавающей запятой, которое требуется преобразовать. Эта функция сохраняет до count цифр value в виде строки и добавляет нулевой символ ('\0'). Если число цифр в value превышает count, разряды нижних порядков округляются. Если количество цифр меньше, чем count, строка дополняется нулями.
Общее число цифр, возвращаемое _ecvt не превысит _CVTBUFSIZE.
Только цифры хранятся в строке. Положение десятичной запятой и знак value можно получить из dec и sign после вызова. Параметр dec указывает на целочисленное значение; это целочисленное значение представляет положение десятичной запятой относительно начала строки. Ноль или отрицательное целое число означают, что десятичная запятая располагается слева от первой цифры. Параметр sign указывает на целое число, указывающее знак преобразованного числа. Если целочисленное значение 0, то число положительно. В противном случае число будет отрицательным.
Различие между _ecvt и _fcvt в интерпретации параметра count. _ecvt интерпретирует count как общее число цифр в выходной строке, тогда как _fcvt интерпретирует count как количество цифр после десятичной запятой.
_ecvt и _fcvt используют один статически выделенный буфер для преобразования. Каждый вызов одной из этих процедур уничтожает результат предыдущего вызова.
Эта функция проверяет свои параметры. Если параметр dec или sign имеет значение NULL или count равен 0, вызывается обработчик недопустимых параметров, как описано в разделе Проверка параметров. Если выполнение может быть продолжено, errno устанавливается в значение EINVAL, и возвращается NULL.
Требования
Функция |
Обязательный заголовок |
---|---|
_ecvt |
<stdlib.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость во введении.
Пример
// crt_ecvt.c
// compile with: /W3
// This program uses _ecvt to convert a
// floating-point number to a character string.
#include <stdlib.h>
#include <stdio.h>
int main( void )
{
int decimal, sign;
char *buffer;
int precision = 10;
double source = 3.1415926535;
buffer = _ecvt( source, precision, &decimal, &sign ); // C4996
// Note: _ecvt is deprecated; consider using _ecvt_s instead
printf( "source: %2.10f buffer: '%s' decimal: %d sign: %d\n",
source, buffer, decimal, sign );
}