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