Mega Code Archive

 
Categories / Delphi / Examples
 

Assigning a comp type to an integer

Question: I am using a comp type (64 bit integer) and would like to assign the value to an integer. Using the Trunc function is too slow. Is there a better way? Answer: The VCL defines a type called TLargeInteger that is a comp type that is broken down into the integer components Low and High. You could simply cast the comp as a TLargeInteger and access one of it's members, and avoid using floating point functions to get at it's underlying integer value. Example: procedure TForm1.Button1Click(Sender: TObject); var c : comp; i : integer; begin c := $FFFFFF; // i := c; This won't work - incompatible types! i := Trunc(c); // This works but has additional overhead; i := TLargeInteger(c).LowPart; end;