Que la variable tenga mas decimales ?

un saludo miembros de la comunidad, les traigo esta duda, y es que estoy haciendo un calculo digamos:

x=1+28;

y el problema esta en que este numero luego lo voy a usar en otra operación

y = x/10;

sabiendo como es el calculo de la maquina

29 / 10 = 2.9 = 2 -.-

en cambio si le coloco al 29 el .0 obtengo lo deseado que es 2.9.. como puedo hacer que x me de ese valor ?

pd: estoy usando el picc, y la linea para mostrarlo en un lcd es esta printf(lcd_putc,"\f valor = %3.2f",y );
 
Última edición:
Lo importante es ¿Qué vas a hacer con el valor?
Con las variables de punto fijo, solo el programador sabe donde está el punto decimal. Para el procesador la cuenta es exactamente la misma. En tu caso tenés que hacer una multiplicación previa, como estás haciendo (multiplicando por 10) o por otro factor adecuado.
Si el objetivo es representar el valor en pantalla, tenés que tener en cuenta esa multiplicación que hiciste cuando lo pases a formato BCD.
También tenés que tener en cuenta que al multiplicar no superes el valor máximo que puede representar tu variable (por ejemplo un unsigned char puede representar hasta 255 cuentas).
 
Atrás
Arriba