[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]