Guardar Datos Float en memoria eeprom

buen día gente, necesito su ayuda tengo un medidor de gasto de energía que hice para la empresa que trabajo, la cosa es que la lectura tomada se me borra cada vez que se desconecta el arduino, e estado viendo en Internet que tengo la opcion de guardarla en la eeprom , ya he tratado de hacerlo pero siempre me empieza de cero o me salen valores extraños, alguien que me pueda explicar mejor? son valores con decimales(float).

este es mi código sin ningún comando de la librería eeprom. la variable float kilo es la que necesito guardar.

#include <LiquidCrystal.h>
#include <EEPROM.h>

int Contador = 0;
int contador1;
int Boton = 12;
int currentPin = 2; //Assign CT input
float kilos;
int peakPower;
int eeAddress = 0;
void(* Resetea) (void) = 0;
LiquidCrystal lcd(8, 9, 4, 5, 6, 7); //Assign LCD screen pins

void setup()
{

pinMode(13,OUTPUT);
pinMode(Boton,INPUT_PULLUP);
lcd.begin(16,2); // columns, rows. use 16,2 for a 16x2 LCD, etc.
lcd.clear();
lcd.setCursor(0,0); // set cursor to column 0, row 0 (the first row)
lcd.print("Running");
Serial.begin(9600);
delay(2000);
}

void Retardo()
{
if(digitalRead(Boton)==LOW)
{
Resetea();
}
}

void loop()
{
int current;
int maxCurrent;
int minCurrent = 1000;
for (int i=0 ; i<=200 ; i++) //Monitors and logs the current input for 200 cycles to determine max and min current
{
current = analogRead(currentPin); //Reads current input
if(current >= maxCurrent)
maxCurrent = current;
else if(current <= minCurrent)
minCurrent = current;
}
if (maxCurrent <= 517)
{
maxCurrent = 516;
}
double RMSCurrent = ((maxCurrent - 516)0.707)/4.5+18; //Calculates RMS current based on maximum value
int RMSPower = 440
RMSCurrent; //Calculates RMS Power Assuming Voltage 220VAC, change to 110VAC accordingly
if (RMSPower > peakPower)
{

peakPower = RMSPower;
}
kilos = kilos + (RMSPower * (2.05/60/60/60000) * 3); //Calculate kilowatt hours used
lcd.clear();
lcd.setCursor(0,0); // Displays all current data
lcd.print(RMSCurrent);
lcd.print("A");
lcd.setCursor(10,0);
lcd.print(RMSPower);
lcd.print("W");
lcd.setCursor(0,1);
lcd.print(kilos);
lcd.print("kWh");
lcd.setCursor(10,1);
lcd.print(peakPower);
lcd.print("W");
CONTADOR();
PAUSA();
}

void PAUSA()
{
if(Contador==1){
lcd.setCursor(10,0);
lcd.print("PAUSA");
CONTADOR();
}
}

void CONTADOR()
{
if((digitalRead(Boton)==LOW) && (Contador == 0))
{
Contador = 1;
Resetea();
while((digitalRead(Boton)==LOW));
}

if((digitalRead(Boton)== LOW) && (Contador ==1))
{
Contador = 0;
while((digitalRead(Boton)== LOW));
}
PAUSA();
}

Lee las normas del foro, edita tu post usando etiquetas y lo mas importante, tu consulta no es un proyecto, de modo que será movida a software.

No hay una sola instrucción que lea o guarde datos en la EEPROM.
Mira esto EEPROM.get y EEPROM.put