_gcvt
Преобразует число с плавающей запятой в строке, которая сохраняет в буфере.Более безопасную версию этой функции доступен; см. _gcvt_s.
char *_gcvt(
double value,
int digits,
char *buffer
);
Параметры
value
Преобразуемое значение.digits
Количество значащих цифр, которые хранятся.buffer
Место хранения результата.
Возвращаемое значение
_gcvt возвращает указатель на строку знаков.
Заметки
_gcvt функция преобразования с плавающей запятой value на символьную строку (которая включает десятичную запятую и возможный байт символа) и хранит строку внутри buffer.buffer должен быть достаточным для размещения преобразованное значение и выполнить нуль-символ, который добавляется автоматически.Если размер буфера digits + 1, используется функция производит перезапись конца буфера.Это происходит потому, что преобразованная строка включает десятичную запятую и может содержать символьные данные и степени.Нет подготовка к работе, переполнения._gcvt пытается создать digits числа в десятичном формате.Если не удается, он формирует digits числа в степенном формате.Замыкающие нули могут быть подавляются в преобразовании.
A buffer length _CVTBUFSIZE достаточны для любого значения с плавающей запятой.
Эта функция проверяет его параметры.If 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:: Преобразование:: ToString