program ExtractFloatsFromString;
uses
SysUtils, // StrToFloat // FormatFloat
Classes; // TStringList
var
strList: TStringList;
str: string;
floats: array of Single;
i: Integer;
begin
str := '2.809 -36.91 21.487 -493.808 5034.7001';
strList := TStringList.Create;
strList.Delimiter := ' ';
strList.DelimitedText := str;
SetLength(floats, strList.Count);
for i := 0 to strList.Count - 1 do
begin
floats[i] := StrToFloat(strList[i]);
// Format to show fixed-point with 4 decimal places
WriteLn(FormatFloat('0.0000', floats[i]));
end;
strList.Free;
end.
(*
run:
2.8090
-36.9100
21.4870
-493.8080
5034.7002