Обратите внимание, что когда вы определяете запись в Delphi (например, struct в C), поля располагаются по порядку и в двоичном формате с учетом текущего выравнивания (например, байты выровнены по границам в 1 байт, слова по 2-байтным, целые по 4 байта и т. Д., Но может варьироваться в зависимости от настроек компилятора.
При сериализации в файл вы, вероятно, имеете в виду, что эта запись записывается в файл в двоичном виде, а следующая запись записывается после первой, начиная с позиции sizeof (структура) и т. Д. И т. Д. Delphi не указывает, как все должно быть сериализовано в / из файла, поэтому информация, которую вы предоставляете, оставляет нас в догадках.
Если вы хотите убедиться, что оно всегда одинаково, без вмешательства каких-либо настроек компилятора, используйте упакованную запись.
Вещественное может иметь несколько значений (это 48-разрядный тип с плавающей запятой для более старых версий Delphi, а затем 64-разрядный с плавающей запятой (IEEE double)).
Если вы не можете получить доступ к коду Delphi или скомпилировать его самостоятельно, просто проверьте данные с помощью HEX-редактора, вы должны четко видеть границы записей, поскольку они начинаются с целых чисел и следуют только за числами с плавающей запятой.