J'ai une fonction qui a un var Extended
paramètre. Le compilateur se plaint si j'essaie d'utiliser un paramètre Double
lorsque j'appelle la fonction. Cependant, si je passe l'argument Extended
en tant que fonction Result
(et l'affecter à un Double
), alors le compilateur est heureux.
Est-ce normal ? Si c'est le cas, existe-t-il un moyen de tromper le compilateur pour qu'il réduise la précision du paramètre afin qu'il corresponde à l'argument ?
function foo1(var e: extended): boolean;
begin
e := 0.0;
Result := true;
end;
function foo2(): extended;
begin
Result := 0.0;
end;
procedure CallFoo();
var
d: double;
begin
if foo1(d) then Exit; // compiler complains
d := foo2; // compiler happy
end;