Una idea. Uds me dirán si es viable o no.
Si tenés tu número en la variable float F, por ejemplo F=45,235 y vos lo pasas a entero: I=(int)F te queda I=45
Para visualizar los decimales se puede hacer:
Primer decimal D1= (int)((F-I)*10); // toma la parte entera de 2,3500 = 2
Segundo decimal D2= (int)((F-I)*100-D1*10); // toma la parte entera de 23,500-20 = 3
Tercer decimal D3= (int)((F-I)*1000-D1*100-D2*10); //toma la parte entera de 235,00-200-30= 5
Esto consume mucho programa, pero optimiza ram
Primer Decimal DF1 = (F-I)*10; // 2,3500
D1 = (int)DF1; // 2
Segundo Decimal DF2 = (DF1-D1)*10; // (2,3500-2)*10 = 3,500
D2 = (int)DF2; // 3
Tercer Decimal DF3 = (DF2-D2)*10; // (3,500-3)*10 = 5,000
D3 = (int)DF3; // 5
Acá las fórmulas son más simples, se usa menos memoria de programa, pero se consume el doble de ram
Primer Decimal AUX = (F-I)*10; // 2,3500
D1 = (int)AUX; // 2
Segundo Decimal AUX = (AUX-D1)*10; // (2,3500-2)*10 = 3,500
D2 = (int)AUX; // 3
Tercer Decimal AUX = (DF2-D2)*10; // (3,500-3)*10 = 5,000
D3 = (int)AUX; // 5
Esto es lo más óptimo, pues se usa menos memoria de programa que en el caso 1. En sí es similar al caso 2, pero se usa una variable auxiliar con lo que el uso de ram es de n+1 en lugar de 2n, siendo n el número de decimales.