View Single Post
  #6   Report Post  
Posted to microsoft.public.excel.programming
Abe Thomas[_2_] Abe Thomas[_2_] is offline
external usenet poster
 
Posts: 2
Default Overflow error occurs when multiplying integer constants in ex

OK got it ... Thanks Joel & Mike for the replies.

"joel" wrote:

You need to use the #

i1 = 2# * 32767# ' This results in an OVERFLOW (the answer is = 32768)

Excel is using integer type for 2 and 32767 and the multiplication of these
two numbers is an overflow. The assignment to I1 occurs later.

"Abe Thomas" wrote:

An overflow error occurs when 2 integer constants (< 32768) are multiplied
that results in a value that is higher than what an integer can hold - see
code below.
This happens all the excel versions I tested.

Anyone out that aware of this problem ?

Sub Mult_Of_2_IntegerConstants_that_result_in_a_LongIn t()
Dim i1 As Long

i1 = 1 * 32767 ' This works since the result is less than 32768

i1 = 2 * 32767 ' This results in an OVERFLOW (the answer is = 32768)

i1 = 2 * 32768 ' This works since one of the operands is = 32768

End Sub