Either use sprintf() to create a string which you can send character by character or check your compiler manuals how to implement your own putchar(). Most compilers allow you to create your own putchar() function, tailored to your hardware. All other standard C functions that print something, like puts(), printf() etc., will eventually call putchar().
Hopefully lcd_write has all the correct handling for the delays for writing to the lcd, and more importantly a TIMEOUT and error return. So that if the LCD fails or its connector 'falls off' the code does not get stuck there!
If you have a spare timer consider using a timer interupt to o/p the next character from a buffer to the display. }
Do you need full float capability for the data that will be displayed? Do you really need on a small display to show 6 or more decimal places?
Are the figures you are going to display going to have a maximum number of digits (integer and/or fraction part)? If so consider rolling your own integer conversion and doing a fixed point over function to display two effective 'integers'.
Know the positions of your data numbers and exactly their min/max sizes. Always get data to print on certain boundaries.
Others have said how you can create your own put_char() and using functions like sprintf and itoa as well.
Do some tests for your library and target, as I remember you saying you are using some form of Zilog mcu, do you have enough Flash/RAM space to use printf/sprintf functions?
printf/sprintf functions and associated functions are large users of memory on most compliers as they have the ability to display a lot more formats than you will require on a 4 x 20 LCD.
In some cases you will not have room on the display anyway.
Look at a HD44780 data sheet also for how to address the display RAM so you ONLY update the data portion of a line with the new numbers, not rewrite the whole line or display.
If you hunt around the GNUH8 site mentioned below there is a 'C' LCD example (written for a different micro), that may well help.
Paul Carpenter | email@example.com