Compartir a través de


_gcvt

Convierte un valor de punto flotante a una cadena, que almacena en un búfer. Una versión más segura de esta función está disponible; vea _gcvt_s.

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

Parámetros

  • value
    Valor que se va a convertir.

  • digits
    Número de dígitos significativos almacenados.

  • buffer
    Ubicación de almacenamiento del resultado.

Valor devuelto

_gcvt devuelve un puntero a la cadena de dígitos.

Comentarios

La función de _gcvt convierte value flotante en una cadena de caracteres (que incluye un separador decimal y un byte posible de signo) y almacena la cadena en buffer. buffer debe ser suficiente para alojar el valor convertido más un carácter null de terminación, que se agrega automáticamente. Si un tamaño de búfer de digits + 1 se utiliza, la función sobrescribe el fin del búfer. Esto es porque la cadena convertida incluye un separador decimal y puede contener el signo y la información del exponente. No hay disponible para el desbordamiento. _gcvt intenta generar los dígitos de digits en formato decimal. Si no puede, genera los dígitos de digits en formato exponencial. Los ceros finales se pueden suprimir en la conversión.

buffer de longitud _CVTBUFSIZE es suficiente para cualquier valor de punto flotante.

Esta función valida sus parámetros. Si buffer es NULL, se invoca el controlador de parámetros no válidos, como se describe en Validación de parámetros. Si la ejecución puede continuar, la función establece errno en EINVAL y devuelve NULL.

Requisitos

Rutina

Encabezado necesario

_gcvt

<stdlib.h>

Para obtener más información de compatibilidad, vea Compatibilidad en la Introducción.

Ejemplo

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

Equivalente en .NET Framework

System::Convert::ToString

Vea también

Referencia

Conversión de datos

Compatibilidad con el punto flotante

atof, _atof_l, _wtof, _wtof_l

_ecvt

_fcvt