_fcvt_s

Преобразует число с плавающей запятой в строке.Это версия _fcvt со службами расширений безопасности, как описано в разделе Средства безопасности в CRT.

errno_t _fcvt_s( 
   char* buffer,
   size_t sizeInBytes,
   double value,
   int count,
   int *dec,
   int *sign 
);
template <size_t size>
errno_t _fcvt_s( 
   char (&buffer)[size],
   double value,
   int count,
   int *dec,
   int *sign 
); // C++ only

Параметры

  • [исходящий] buffer
    Предоставленный буфер, в котором будет храниться результат преобразования.

  • [входящий] sizeInBytes
    Размер буфера в байтах.

  • [входящий] value
    Число для преобразования.

  • [входящий] count
    Количество цифр после десятичного знака.

  • [исходящий] dec
    Указатель к хранимому позиции десятичной запятой.

  • [исходящий] sign
    Указатель к хранимому индикатору знака.

Возвращаемое значение

Нуль, если успешно.Возвращаемое значение кода ошибки, если сбой.Коды ошибок, определенные в Errno.h.Для списка этих ошибок см. errno.

В случае недопустимого параметра, как показано в следующей таблице, эта функция вызывает обработчик недопустимого параметра, как описано в разделе Проверка параметров.Если выполнение может быть продолжено, то наборы этой функции errno В EINVAL возвращает EINVAL.

Условия возникновения ошибок

buffer

sizeInBytes

value

count

dec

sign

Return

Значение в пределах buffer

NULL

any

any

any

any

any

EINVAL

Не изменяется.

NOT NULL (указывает на допустимый памяти)

<=0

any

any

any

any

EINVAL

Не изменяется.

any

any

any

any

NULL

any

EINVAL

Не изменяется.

any

any

any

any

any

NULL

EINVAL

Не изменяется.

Вопросы безопасности

_fcvt_s Нарушение прав доступа, если может создать buffer не указывает на допустимый памяти и нет NULL.

Заметки

_fcvt_s функция преобразует число с плавающей запятой в null-завершенной символьную строку.value параметр число с плавающей запятой, которые требуется преобразовать._fcvt_s хранит числа value как строка и добавления нуль-символ (" \ 0 ").count параметр определяет количество разрядов, которое будет храниться после десятичной запятой.Лишние цифры округляются до count размещения.Если меньше count цифры точности, строка заполняются нулями.

Только числа хранятся в строке.Позиция десятичной запятой, а символ value может быть получен из dec и sign после вызова.dec элементы параметра в значение целого числа. это целое значение дает положение десятичной запятой относительно начала строки.Нулевое или отрицательное целое значение указывает на то, что десятичная запятая, расположенную слева от первого числа.Параметр sign указывает на целое число, указывающее знак value.Целое число имеет значение 0, если value положительное число, если и установлено в ненулевое значение value отрицательные значения.

Буфера длины _CVTBUFSIZE достаточны для любого значения с плавающей запятой.

Различие _ecvt_s и _fcvt_s в толковании count параметр._ecvt_s интерпретирует count так как общее количество цифр в выходной строке. _fcvt_s интерпретирует count как число знаков после десятичной запятой.

В C++ с помощью этой функции упрощает перегрузкой шаблона; перегрузка может определить длину буфера автоматически, устранение необходимости указывать аргумент size.Дополнительные сведения см. в разделе Предоставляйте перегруженный шаблона.

Отладочная версия этой функции сначала заполняет буфер с 0xFD.Чтобы отключить эту реакция на событие, воспользуйтесь _CrtSetDebugFillThreshold.

Требования

Функция

Обязательный заголовок

Необязательный заголовок

_fcvt_s

<stdlib.h>

<errno.h>

Дополнительные сведения о совместимости см. Совместимость во введении.

библиотеки: все версии Функции библиотеки CRT.

Пример

// fcvt_s.c
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>

int main()
{
  char * buf = 0;
  int decimal;
  int sign;
  int err;

  buf = (char*) malloc(_CVTBUFSIZE);
  err = _fcvt_s(buf, _CVTBUFSIZE, 1.2, 5, &decimal, &sign);
  
  if (err != 0)
  {
     printf("_fcvt_s failed with error code %d\n", err);
     exit(1);
  }

  printf("Converted value: %s\n", buf);  
  
}
  

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

ToString

См. также

Ссылки

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

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

atof, _atof_l, _wtof, _wtof_l

_ecvt_s

_gcvt_s

_fcvt