[Back to DATATYPE SWAG index]  [Back to Main SWAG index]  [Original]

 > Yes LongInts are as you say from approx -2bil to +2bil.  I'd
 > say what is happening here is that you are adding two
 > Integers & assigning the result to a LongInt.  Consider the
 > following :-

 > Var
 >    v1, v2 : Integer;
 >    Res    : LongInt;

 > begin
 >      v1 := 30000;
 >      v2 := 30000;
 >      Res := v1 + v2;
 > end;

 > This will not give Res = 60000, because as Far as I am aware
 > TP only does Type promotion to the RHE Until the actual
 > assignment operation.  What this means is that the sum of v1
 > & v1 must yield an Integer since the largest Type to contain
 > each is an Integer.  Adding two Integer 30000 numbers
 > together caUses an overflow & ends up being a random-ish
 > number, usually negative.  So what must be done here is
 > Typecasting.  This should fix it :-

 >      Res := LongInt(v1) + LongInt(v2);

[Back to DATATYPE SWAG index]  [Back to Main SWAG index]  [Original]