Fram.write with float variable

No, the cause of the issue is different.
Do you see at the library code?
The return value of the read32() method is.... uint32_t

uint32_t FRAM::read32(uint16_t memAddr)