Поделиться через


_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 );
}
  

Эквивалент в .NET Framework

System::Convert::ToString

См. также

Ссылки

Преобразование данных

Поддержка чисел с плавающей запятой

atof, _atof_l, _wtof, _wtof_l

_ecvt

_gcvt