Das hier macht sogar die 0 negativ
Delphi-Quellcode:
FUNCTION Negativator(e: extended): extended;
BEGIN
pbyteArray(@e)^[9] := pbyteArray(@e)^[9] or $80;
Result := e;
END;
procedure TForm1.Button1Click(Sender: TObject);
var
st : string;
begin
Str(Negativator(42), st); // st = '-4.20000000000000E+0001'
Str(Negativator( 0), st); // st = '-0.00000000000000E+0000'
Str(Negativator(Infinity), st); // st = ' -Inf'
end;
(Für "Infinity" müßt ihr die Math
Unit einbinden).
Gruß
Michael