Compartir a través de


_ecvt

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

Sintaxis

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

Parámetros

value
Número que se va a convertir.

count
Número de dígitos almacenados.

dec
Posición del separador decimal almacenada.

sign
Signo del número que se convierte.

Valor devuelto

_ecvt devuelve un puntero a la cadena de dígitos; NULL si se produjo un error.

Comentarios

La función _ecvt convierte un número de punto flotante en una cadena de caracteres. El parámetro value es el número de punto flotante que se va a convertir. Esta función almacena hasta count dígitos de value como cadena y anexa un carácter nulo ("\0"). Si el número de dígitos de value supera count, se redondea el dígito de orden inferior. Si hay menos de count dígitos, la cadena se rellena con ceros.

El número total de dígitos devueltos por _ecvt 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 sign después de la llamada. El parámetro dec apunta a un valor entero que proporciona la posición del separador decimal con respecto al principio de la cadena. Un valor entero de 0 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 del número que se convierte. Si el valor entero es 0, el número es positivo. De lo contrario, el número 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 EINVAL y 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
_ecvt <stdlib.h>

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

Ejemplo

// crt_ecvt.c
// compile with: /W3
// This program uses _ecvt to convert a
// floating-point number to a character string.

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

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

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

Consulte también

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