Isto não é verdade... Basta ver o código da biblioteca EEPROM para ver que a mesma guarda o valor do float byte a byte. O mesmo é simples de fazer utilizando uniões.
union Float_8 {
float float_value;
unsigned char array_value[4];
};
//...
union Float_8 dado_EEPROM, lido_EEPROM;
dado_EEPROM.float_value = 3.14;
for (unsigned char i = 0; i < 4 ; i++) {
EEPROM.write(10+i, dado_EEPROM.array_value[i]);
};
//...
//ler da EEPROM
for (unsigned char i = 0; i < 4 ; i++) {
EEPROM.read(10+i, lido_EEPROM.array_value[i]);
};
Serial.println(lido_EEPROM.float_value);
Sim, não é directo e a put e get faz o mesmo com passos possíveis em C++, mas o mecanismo é o mesmo. Nota que é também possível de fazer exactamente o mesmo sem uniões e com bit shift mais máscaras.
Serve apenas para elucidar quem levantou a questão original que existe mais mundo além do Arduino.