for sure it's 32-bit float
about aligned records - unless allocated on the stack or directly by GetMem, you don't have to care...in these cases first clear it with zeroes using FillChar and you can safely use CompareMem with them (or easier solution with GetMem is to replace it with AllocMem)....

suffice to say, CompareMem would be fast if you'd be comparing 2 large records or arrays of records, otherwise it's slower...