Integer to double conversion

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