Hola, mira, lo que yo hacia mal era poner :
printf (lcd_putc, "5f", variable);
pensando que el 5 era el numero de decimales que mostraria, y no es asi, un ejemplo seria :
printf (lcd_putc, "2.3f", variable);
donde el dos dice el numero correspondiente a la parte entera y el 3 a los decimales, por ejemplo se visualizaria " 19.235"
Almenos asi me ha funcionado. Espero que te ayude.