Zitat von
Selecta:
Aber hast du deine Funktion getestet?
Ich bekomme eine Fehlermeldung in der nichts drin steht. o_O
Ich bastel gerade noch etwas daran rum....
Delphi-Quellcode:
function HexStringToFloat(const s:string):Extended;
var
i : Integer;
scale : Extended;
begin
Result := 0;
for i := 1 to Length(s) do
begin
if s[i] = '.' then
Continue;
Result := Result * 16.0 + StrToInt('$'+s[i]);
end;
scale := 1.0;
for i := Length(s) downto 1 do
begin
if s[i] = '.' then
begin
Result := Result * scale;
end;
scale := scale / 16.0;
end;
end;
Mein Test:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
x : double;
begin
x := HexStringToFloat(Edit1.Text);
Edit2.Text := FloatToStr(x);
end;
HexStringToFloat('64.7FFFF') ergibt 100,499999046326; das ist doch richtig, oder ?