Normalmente vas a tener que convertir el numero a BCD. Lo voy a explicar con enteros.
Supongamos que tenes esto:
Variable = 183;
Si quisiera mostrar 183 en el LCD, deberia tener los caracteres '1' , '8' y '3'.
Si observas simplemente separamos unidades, decenas y centenas. Esto podria hacerlo de distintas formas, una es con restas sucesivas, la otra es con divisiones o modulos.
Si resto a variable de 100 en 100, hasta que sea menor a 100 y aumento en 1 cada vez que ocurra eso a una variable llamada centenas. Obtendria que centenas es igual a 1.
Eso me deja con el valor 83, si resto de 10 en 10 ahora. Podria hacerlo 8 veces. si incremento decenas, eso me queda en 8. Y el resto que es 3 son las unidades
Ahora esos son numeros, expresados en hexadecimal seria asi:
centenas = 0x1
decenas = 0x8
unidades = 0x3
Pero el LCD utiliza caracteres ASCII. Si buscas en google "ASCII Table" y abris una imagen te vas a dar cuenta que un '1' es igual a 0x31, un '9' es igual a 0x39
Por lo tanto si le sumo 0x30 a lo anterior me queda:
centenas = 0x31 = '1'
decenas = 0x38 = '8'
unidades = 0x33 = '3'
Ahora solo me resta enviarlo 1 por 1 al LCD, primero las centenas luego las decenas y finalmente las unidades.
De esa forma podes mostrar en un LCD tus variables. Para valores con coma se podria hacer algo parecido. Pero ya es mas complejo por su exponente.