Compartir a través de


_fcvt

Convierte un número de punto flotante en una cadena. Hay disponible una versión más segura de esta función; consulte _fcvt_s.

Sintaxis

char *_fcvt(
   double value,
   int count,
   int *dec,
   int *sign
);

Parámetros

value
Número que se va a convertir.

count
Número de dígitos después del separador decimal.

dec
Puntero a la posición del separador decimal almacenada.

sign
Puntero al indicador de signo almacenado.

Valor devuelto

_fcvt devuelve un puntero a la cadena de dígitos, NULL en caso de error.

Comentarios

La función _fcvt convierte un número de punto flotante en una cadena de caracteres finalizada en null. El parámetro value es el número de punto flotante que se va a convertir. _fcvt almacena los dígitos de value como cadena y anexa un carácter nulo ("\0"). El parámetro count especifica el número de dígitos que se almacenarán después del separador decimal. Los dígitos en exceso se redondean a count decimales. Si hay menos de count dígitos de precisión, la cadena se rellena con ceros.

El número total de dígitos devueltos por _fcvt no superará _CVTBUFSIZE.

Solo se almacenan dígitos en la cadena. La posición del separador decimal y el signo de value pueden obtenerse de dec y el signo después de la llamada. El parámetro dec apunta a un valor entero; este valor entero proporciona la posición del separador decimal con respecto al principio de la cadena. Un valor entero de cero o negativo indica que el separador decimal se encuentra a la izquierda del primer dígito. El parámetro sign apunta a un entero que indica el signo de value. El entero se establece en 0 si value es positivo y se establece en un número distinto de cero si value es negativo.

La diferencia entre _ecvt y _fcvt radica en la interpretación del parámetro count. _ecvt interpreta count como el número total de dígitos en la cadena de salida, mientras que _fcvt interpreta count como el número de dígitos después del separador decimal.

_ecvt y _fcvt usan un solo búfer asignado estáticamente para la conversión. Cada llamada a una de estas rutinas destruye el resultado de la llamada anterior.

Esta función valida sus parámetros. Si dec o es , o countsign es NULL0, 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, errno se establece en EINVALy NULL se devuelve .

De manera predeterminada, el estado global de esta función está limitado a la aplicación. Para cambiar este comportamiento, consulte Estado global en CRT.

Requisitos

Función Encabezado necesario
_fcvt <stdlib.h>

Para obtener más información sobre compatibilidad, consulte Compatibilidad.

Ejemplo

// crt_fcvt.c
// compile with: /W3
// This program converts the constant
// 3.1415926535 to a string and sets the pointer
// buffer to point to that string.

#include <stdlib.h>
#include <stdio.h>

int main( void )
{
   int  decimal, sign;
   char *buffer;
   double source = 3.1415926535;

   buffer = _fcvt( source, 7, &decimal, &sign ); // C4996
   // Note: _fcvt is deprecated; consider using _fcvt_s instead
   printf( "source: %2.10f   buffer: '%s'   decimal: %d   sign: %d\n",
            source, buffer, decimal, sign );
}
source: 3.1415926535   buffer: '31415927'   decimal: 1   sign: 0

Consulte también

Conversión de datos
Compatibilidad con matemáticas y punto flotante
atof, _atof_l, _wtof, _wtof_l
_ecvt
_gcvt