I beg to differ
uint32_t value = 0x41CC28F6; // should give 25.52
char buff[20];
float tFloat = 999.666;
void setup() {
Serial.begin(115200);
Serial.print(F("casting 0x"));
Serial.print(value, HEX);
Serial.print(F(" to float gives "));
dtostrf((float)value, 0, 6, buff);
Serial.println(buff);
Serial.print(F("interpreting 0x"));
Serial.print(value, HEX);
Serial.print(F(" as float "));
memcpy(&tFloat, &value, sizeof(value));
dtostrf(tFloat, 0, 6, buff);
Serial.println(buff);
}
void loop() {}
casting 0x41CC28F6 to float gives 1103898900.000000
interpreting 0x41CC28F6 as float 25.520000