Hola Kevin,
Pues mira, hay un par de funciones que te podrian ayudar:
_ecvt y _fcvt las cuales te hacen la conversion de doble a caracter.
La diferencia entre estas funciones es que mientras en la primera puedes especificar la cantidad de digitos que quieres que te regrese, en la segunda especificas la cantidad de decimales. Bueno, para no enredar las cosas pondre la sintaxis de ambas y un ejemplo, sale?
_ecvt (valor origen, # de digitos que devolvera, puntero posicion decimal, puntero signo)
_fcvt (valor origen, # de decimales que devolvera, puntero posicion decimal, puntero signo)
Ejemplo:
int punto, signo;
char *cadena;
double valor = 77.123456;
cadena = _ecvt(valor, 4, &punto, &signo)
si imprimes los valores de cadena, punto y signo te devolveria lo siguiente:
cadena1 = 7712 (los 4 primeros digitos)
punto = 2 (hay dos numeros enteros, o el punto decimal se encuentra despues de la segunda posición, como lo quieras leer)
signo = 0 (porque el numero es positivo, si fuera negativo valdria 1)
cadena = _fcvt(valor, 4, &punto, &signo)
Ahora, si imprimes los valores de cadena, punto y signo despues de esta otra funcion, te devolveria lo siguiente:
cadena1 = 771234 (6 digitos, 2 enteros y 4 DECIMALES, es decir, te devolvera los enteros mas la cantidad de decimales que hayas especificado)
punto = 2 (hay dos numeros enteros, o el punto decimal se encuentra despues de la segunda posición, como lo quieras leer)
signo = 0 (porque el numero es positivo, si fuera negativo valdria 1)
%