Ola @maikoherrmann82
um numero float no arduino (atmegaxxxx) tem um aproximação de 6 (7) dígitos decimais.
Quando você imprime usando :
Serial.println(coef); somente são impressos 2 dígitos decimais.
para ver todos 7 dígitos decimais use: Serial.println(coef,7);
Números de ponto flutuante não são exatos, e podem gerar desvios.
No seu código original, mesmo antes de gravar na EEPROM o numero já era 48.
Fiz um resumo bem pequeno do seu código para que voce veja o numero antes mesmo de gravar na EEPROM.
8.49 aparece com 8.4899997e 8,59 aparece como 8.5900001
float coef = 8.49;
float coef2 = 8.59;
//-------------------------------------------------------
void setup() {
Serial.begin(9600);
}
//-------------------------------------------------------
void loop() {
delay(1500);
Serial.println(coef,7);
Serial.println(byte((coef-byte(coef))*100));
Serial.println(coef2,7);
Serial.println(byte((coef2-byte(coef2))*100));
}
8.4899997
48
8.5900001
59
8.4899997
48
8.5900001
59