hize este pequeño programa que separa el entero de un float, del decimal y el decimal lo vuelve entero con la funcion pow, el decimal es y= .44 pero pow(10,3) regresa 439 en vez de 440, espero me puedan ayudar.
int main(int argc, char *argv[])
{
unsigned int z,fracpart;// z almacena la parte entera y fracpart son los decimales hechos enteros.
float y; // y almacena la parte decimal
float x=9.44;// numero a separar.
z=(unsigned int)x;// almacena parte entera de x
y=(float)(x- (unsigned int) x);// almacena parte decimal
fracpart=pow(10,3)*y;//mueve el punto decimal 3 digitos a la derecha
printf("el numero es:%f\nel entero es:%d\nel decimal es:%f\nel decimal hecho entero es:%d\n",x,z,y,fracpart );
system("PAUSE");
return 0;
}
esto lo hago porque en la programacion demicrocontroladores no existe sprintf() para pasar de float a string, lo anterior seria una parte de mi propia funcion, gracias.