Esta función fcvt() convierte el valor de coma flotante en una string ASCII terminada en NULL y le devuelve un puntero. Se define en la función de biblioteca definida en el archivo de encabezado stdlib.h .
Sintaxis:
char * fcvt (doble valor, int num, int * dec, int * signo);
Parámetros:
1. valor doble : es el valor de coma flotante que se convertirá en una string.
2. int num: Es un número de dígitos que devolverá la función. Si es mayor que el número de dígitos en valor, el resto de la string se rellena con ceros y si es menor, se redondea el dígito de orden inferior.
3. int * dec: Es un puntero de número entero, que almacena la posición del punto decimal con respecto al comienzo de la string. Si es cero o menor que cero, indica que el punto decimal se encuentra a la izquierda de los dígitos
4. int * signo: Es un puntero entero, que recibe el indicador de signo como 0 significa signo positivo y distinto de cero significa negativo.
La función devuelve una string de caracteres terminada en nulo con la misma longitud especificada como num que contiene los dígitos del número doble que pasa como parámetro.
A continuación se muestran los programas en C para ilustrar el uso de la función fcvt():
Ejemplo 1:
C
// C program to illustrate the // use of fcvt() function #include <stdio.h> #include <stdlib.h> // Function to illustrate the // use of fcvt() function void useOfFcvt() { double x = 123.4567; char* buf; int dec, sign; // Function Call buf = fcvt(x, 6, &dec, &sign); // Print the converted string printf("The converted string " "value is: %c%c.%sX10^%d\n", sign == 0 ? '+' : '-', '0', buf, dec); } // Driver Code int main() { // Function Call useOfFcvt(); return 0; }
El valor de la string convertida es: +0.123456700X10^3
Explicación:
En el programa C anterior, el valor doble (flotante), es decir, 123,4567, se convierte en el valor de string (+ 0,123457X103) mediante la función fcvt().
Ejemplo 2:
C++
// C program to implement // FCVT() function #include <stdio.h> #include <stdlib.h> // Driver code int main(void) { char* string; double value; int Dec, sign; int ndig = 10; value = -9.876; string = fcvt(value, ndig, &Dec, &sign); printf("The converted string" " value is: %s Dec " "is: %d sign is: %d\n", string, Dec, sign); return 0; }
El valor de la string convertida es: 98760000000 Dec es: 1 el signo es: 1