Hi ecaits,
sprintf() can eat up more memory on PIC16F877. Fixed point arithmetic is good. But if you still want to use float, use the follwoing code to display on LCD.
Code:
#define DECIMAL_PLACES (100) // 2 digits after decimal
void displayFloat(float value) // Assume value = 123.456
{
unsigned long a = value; // a = 123
value = (value - (float)a) * (DECIMAL_PLACES); // value = 45.6
unsigned long b = value; // b = 45
display(a);
display('.');
display(b);
}