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