Convertir un float en dos enteros y guardar en eeprom

Buenas tardes a tod@s.
Tengo un pequeño problema que me esta quemando la sangra ultimamente, a ver si algun@ me puede echr un cable.
Con el fin de guardar los valores de un termostato en la eeprom del arduino, necesito convertir un float con dos decimales en dos enteros.
Para ello utlizo el siguiente codigo que no me esta dando unos resultados plenamente satisfactorios:

int Int_termostato1 = (int)(termostato1);
int Dec_termostato1 = 100 * (termostato1 - Int_termostato1);
EEPROM.write(8, Int_termostato1);
EEPROM.write(9, Dec_termostato1);

El problema es que a veces los decimales no se restan adecuadamente y me da errores de 0.01 ºC al convertirlos.
Alguien sabe alguna manera mejor de convertir un float en dos enteros?
Gracias de antemano.
Salu2.

La parte decimal también la podrías obtener así:

int Dec_termostato1 = (100.0 * termostato1)%100;

Si sigue fallando, prueba sumando al float 0.005 antes de convertir, ya que C siempre trunca, no redondea:

int Dec_termostato1 = (100.0 * (termostato1 + 0.005))%100;

Ya contarás si funciona.
Saludos.

Gracias noter por tu solución, parece que si me funciona.
La verdad es que esto de operaciones con float me esta llevando de cabeza.
Salu2.
:smiley:

existe el operador cast para evitar eso.
Delante de la operacion coloca el tipo de dato que debe devolver al operar
f=float(100.00*Temperatura)