Please upload your whole project, instead of just posting small snippets. Sometimes the errors in the least likely places can cause problems elsewhere in the program.
Is "timer" declared as a float? Is it a integer? Is it a short? Is it a char?
If it is declared as a float, try this code snippet:
---------- Post added at 12:02 ---------- Previous post was at 11:17 ----------
Your problem with displaying character on the LCD stems from the fact you are passing a "char" to a function which expects a "float".
You should always pass the correct "type" to a function call.
There are numerous reports of strange output caused by passing the incorrect "type" to either FloatToStr() or IntToStr(). To keep things simple I would just declare timer an Integer type and use IntToStr(). If you want that decimal point in your display, then cast the timer variable into a "float", FloatToStr((float)timer).