_gcvt

 

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

Convierte un valor de punto flotante en una cadena, que se almacena en un búfer. Una versión más segura de esta función está disponible; see _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 que almacenan.

buffer
Ubicación de almacenamiento para el resultado.

_gcvtDevuelve un puntero a la cadena de dígitos.

El _gcvt función convierte un punto flotante value en una cadena de caracteres (que incluye un separador decimal y un byte con signo posible) y almacena la cadena de buffer. El buffer debe ser lo suficientemente grande como para alojar el valor convertido más de un carácter null final, que se anexa automáticamente. Si un tamaño de búfer de digits + 1 se utiliza, la función sobrescribe el final del búfer. Esto es porque la cadena convertida incluye un separador decimal y puede contener información de exponente y de inicio de sesión. No hay ninguna disposición de desbordamiento. _gcvtintenta generar digits dígitos en formato decimal. En caso contrario, produce digits dígitos en formato exponencial. Pueden suprimir los ceros finales en la conversión.

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

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 del parámetro. Si la ejecución puede continuar, la función establece errno en EINVAL y devuelve NULL.

RutinaEncabezado necesario
_gcvt<stdlib.h>

Para obtener más información sobre compatibilidad, vea Compatibility en la introducción.

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

The following numbers were converted by _gcvt(value,12,buffer):  
buffer: '-1234567890.12' (14 chars)  
buffer: '-12345678901.2' (14 chars)  
buffer: '-123456789012' (13 chars)  
buffer: '-1.23456789012e+012' (19 chars)  
  
buffer: '-12.3456789012' (14 chars)  
buffer: '-1.23456789012' (14 chars)  
buffer: '-0.123456789012' (15 chars)  
buffer: '-1.23456789012e-002' (19 chars)  

System::Convert::ToString

Conversión de datos
Compatibilidad de punto flotante
atof, _atof_l, _wtof, _wtof_l
_ecvt
_fcvt

Mostrar: