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


_gcvt

Преобразует число с плавающей запятой в строку и сохраняет ее в буфере. Существует более безопасная версия этой функции; см. раздел _gcvt_s.

char *_gcvt( 
   double value,
   int digits,
   char *buffer 
);

Параметры

  • value
    Преобразуемое значение.

  • digits
    Количество хранящихся значащих цифр.

  • buffer
    Место хранения для результата.

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

_gcvt возвращает указатель на строку цифр.

Заметки

Функция _gcvt преобразует value с плавающей запятой на символьную строку (которая включает десятичную запятую и возможный байт знака) и запоминает строку в buffer. buffer должен быть достаточным для размещения преобразованного значения и конечного нулевого символа, который добавляется автоматически. Если используется размер буфера digits + 1, то функция перезапишет конец буфера. Это происходит потому, что преобразованная строка включает десятичную запятую и может содержать знак и экспоненту. Защита от переполнения не предусмотрена. _gcvt пытается создать числа digits в десятичном формате. Если не удается, он создает числа digits в степенном формате. Замыкающие нули можно отключить при преобразовании.

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

Эта функция проверяет свои параметры. Если параметр buffer имеет значение NULL, вызывается обработчик недопустимого параметра, как описано в разделе Проверка параметров. Если продолжение выполнения разрешено, функция устанавливает errno в EINVAL и возвращает NULL.

Требования

Подпрограмма

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

_gcvt

<stdlib.h>

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

Пример

// crt_gcvt.c
// compile with: /W3
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

int main( void )
{
   char buffer[_CVTBUFSIZE];
   double value = -1234567890.123;
   printf( "The following numbers were converted by _gcvt(value,12,buffer):\n" );
   _gcvt( value, 12, buffer ); // C4996
   // Note: _gcvt is deprecated; consider using _gcvt_s instead
   printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
   value *= 10;
   _gcvt( value, 12, buffer ); // C4996
   printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
   value *= 10;
   _gcvt( value, 12, buffer ); // C4996
   printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
   value *= 10;
   _gcvt( value, 12, buffer ); // C4996
   printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );

   printf( "\n" );
   value = -12.34567890123;
   _gcvt( value, 12, buffer ); // C4996
   printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
   value /= 10;
   _gcvt( value, 12, buffer ); // C4996
   printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
   value /= 10;
   _gcvt( value, 12, buffer ); // C4996
   printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
   value /= 10;
   _gcvt( value, 12, buffer ); // C4996
   printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
}
  

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

System::Convert::ToString

См. также

Ссылки

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

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

atof, _atof_l, _wtof, _wtof_l

_ecvt

_fcvt