Exportar (0) Imprimir
Expandir todo
and
div
eof
not
or
xor
Expandir Minimizar
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

_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 
);

value

Valor que se va a convertir.

digits

Número de dígitos significativos almacenados.

buffer

Ubicación de almacenamiento del resultado.

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

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.

Rutina

Encabezado necesario

_gcvt

<stdlib.h>

Para obtener más información de compatibilidad, vea Compatibilidad 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) );
}
Los números siguientes se convierten por el _gcvt (valor, 12, búfer):
búfer: “- 1234567890,12 " (14 caracteres)
búfer: “- 12345678901,2 " (14 caracteres)
búfer: “- 123456789012 " (13 caracteres)
búfer: “- 1.23456789012e+012” (19 caracteres)

búfer: “- 12,3456789012 " (14 caracteres)
búfer: “- 1,23456789012 " (14 caracteres)
búfer: “- 0,123456789012 " (15 caracteres)
búfer: “- 1.23456789012e-002” (19 caracteres)

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft