Partilhar via


_gcvt

Converte um valor de ponto flutuante em uma cadeia de caracteres, que armazena em um buffer.Uma versão mais segura desta função está disponível; consulte _gcvt_s.

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

Parâmetros

  • value
    Valor a ser convertido.

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

  • buffer
    Local de armazenamento para o resultado.

Valor de retorno

_gcvt Retorna um ponteiro para a seqüência de dígitos.

Comentários

The _gcvt função converte um ponto flutuante value a uma seqüência de caractere (que inclui uma vírgula decimal e um possível sinal byte) e armazena a seqüência de caractere em buffer. The buffer deve ser grande o suficiente para acomodar o valor convertido além de um caractere nulo de terminação, que é anexado automaticamente. Se um dimensionar de buffer de digits + 1 é usado, a função substitui o participante do buffer. Isso ocorre porque a seqüência de caracteres convertida inclui um ponto decimal e pode conter sinal e sobre expoente.Não há nenhuma provisão para estouro._gcvt tentativas para produzir digits dígitos no formato decimal. Se não for possível, ela produz digits dígitos no formato exponencial. À direita de zeros talvez suprimida na conversão.

A buffer comprimento _CVTBUFSIZE é suficiente para flutuante qualquer valor de ponto.

Esta função valida os parâmetros.If buffer é NULL, o manipulador de parâmetro inválido é chamado, conforme descrito em Validação de parâmetro. Se a execução for permitida para continuar, essa função define errno para EINVAL e retornos NULL.

Requisitos

Rotina

Cabeçalho necessário

_gcvt

<stdlib.h>

Para obter mais informações de compatibilidade, consulte Compatibilidade na introdução.

Exemplo

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

Equivalente do NET Framework

sistema::converter::ToString

Consulte também

Referência

Conversão de Dados

Suporte de ponto flutuante

atof, _atof_l, _wtof, _wtof_l

_ecvt

_fcvt