Statt Word Cardinal nehmen oder einen Typen, der in der Lage ist, das Ergebnis aufzunehmen?
Oder ganz grausilig:
Delphi-Quellcode:
procedure TdlgMain.Test3;
var
AWord: Word;
ADouble: Double;
ATemp: Double;
begin
AWord := 64536;
ATemp := SQR(AWord + 0.0); // Das Quadrat muss man nicht zweimal berechnen
// und + 0.0 macht aus dem Word 'nen Fließkommawert.
ADouble := SQRT(ATemp + ATemp);
end;