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