Partilhar via


_fcvt_s

Converte um número de ponto flutuante em uma seqüência de caracteres.Esta é uma versão de _fcvt com aprimoramentos de segurança conforme descrito em Aprimoramentos de segurança no CRT.

errno_t _fcvt_s( 
   char* buffer,
   size_t sizeInBytes,
   double value,
   int count,
   int *dec,
   int *sign 
);
template <size_t size>
errno_t _fcvt_s( 
   char (&buffer)[size],
   double value,
   int count,
   int *dec,
   int *sign 
); // C++ only

Parâmetros

  • [out] buffer
    O buffer fornecido que irá armazenar o resultado da conversão.

  • [in]sizeInBytes
    O dimensionar do buffer em bytes.

  • [in]value
    Número a ser convertido.

  • [in]count
    Número de dígitos depois do ponto decimal.

  • [out] dec
    Ponteiro para a posição do ponto decimal armazenado.

  • [out] sign
    Ponteiro para o indicador de sinal armazenado.

Valor de retorno

Zero se for bem-sucedido.O valor retornado é um código de erro se houver uma falha.Códigos de erro estão definidos no errno.h.Para obter uma lista desses erros, consulte errno, _doserrno, _sys_errlist e _sys_nerr.

No caso de um parâmetro inválido, sistema autônomo listado na tabela a seguir, essa função chama o manipulador de parâmetro inválido, 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 EINVAL.

Condições de erro

buffer

sizeInBytes

Valor

Contagem

DEC

sinal

Return

Valor em buffer

NULL

any

any

any

any

any

EINVAL

Não modificado.

Not NULL (points to valid memory)

<=0

any

any

any

any

EINVAL

Não modificado.

any

any

any

any

NULL

any

EINVAL

Não modificado.

any

any

any

any

any

NULL

EINVAL

Não modificado.

Questões de segurança

_fcvt_s pode ser gerada uma violação de acesso se buffer não aponta para memória válido e não é NULL.

Comentários

The _fcvt_s função converte um número de ponto flutuante em uma seqüência de caracteres terminada com caractere nulo. The value parâmetro é o número de ponto flutuante a ser convertido. _fcvt_s armazena sistema autônomo dígitos de value sistema autônomo uma seqüência de caracteres e o acrescenta um caractere nulo ('\0'). The count parâmetro especifica o número de dígitos a serem armazenados após a vírgula decimal. Excesso de dígitos são arredondados, count locais. Se houver menos de count dígitos de precisão, a seqüência de caracteres é preenchido com zeros.

Somente dígitos são armazenados na seqüência de caracteres.A posição do ponto decimal e o sinal de value pode ser obtido dec e sign Após a telefonar. The dec parâmetro aponta para um valor inteiro; esse valor de inteiro dá a posição do ponto decimal ao início da string. Zero ou valor inteiro negativo indica que o ponto decimal está à esquerda do primeiro dígito.O parâmetro sign aponta para um número inteiro indicando o sinal de value. O número inteiro é definido como 0 se value é positiva e é definido como um número diferente de zero se value é negativo.

Um buffer de tamanho _CVTBUFSIZE é suficiente para flutuante qualquer valor de ponto.

A diferença entre _ecvt_s e _fcvt_s está na interpretação das count parâmetro. _ecvt_s interpreta count sistema autônomo o número total de dígitos na cadeia de saída, e _fcvt_s interpreta count sistema autônomo o número de dígitos depois do ponto decimal.

No C++, uso da função é simplificado pela sobrecarga de uma modelo; a sobrecarga pode inferir comprimento do buffer automaticamente, eliminando a necessidade de especificar um argumento de dimensionar.For more information, see Proteger overloads de modelo.

A versão de depurar dessa função primeiro preencherá o buffer com 0xFD.Para desabilitar esse comportamento, use _CrtSetDebugFillThreshold.

Requisitos

Função

Cabeçalho necessário

Cabeçalho opcional

_fcvt_s

<stdlib.h>

<errno.h>

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

Bibliotecas: Todas as versões do C em time de execução bibliotecas.

Exemplo

// fcvt_s.c
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>

int main()
{
  char * buf = 0;
  int decimal;
  int sign;
  int err;

  buf = (char*) malloc(_CVTBUFSIZE);
  err = _fcvt_s(buf, _CVTBUFSIZE, 1.2, 5, &decimal, &sign);
  
  if (err != 0)
  {
     printf("_fcvt_s failed with error code %d\n", err);
     exit(1);
  }

  printf("Converted value: %s\n", buf);  
  
}

Converted value: 120000

Equivalente do NET Framework

ToString

Consulte também

Referência

Conversão de Dados

Suporte de ponto flutuante

atof, _atof_l, _wtof, _wtof_l

_ecvt_s

_gcvt_s

_fcvt