Вероятно, ты получаешь 4 байта.
Можно делать разными способами.
Например, записать их в поток как строку, а потом считать из потока как float. Или поиграться с указателями.
Код не проверял, просто как идея:
Код:
var
S : String; // Исходная строка
W : DWORD; // 4 байта
PF : ^Double;
I : Integer;
F : Double;
begin
W := 0;
For I := 1 To 4 Do
Begin
W := W + Ord(S[i]);
W := W shl 8;
End;
FP := @W;
F := FP^;
end;