devxlogo

Manually coerce to Long all Integer expressions that might overflow

Manually coerce to Long all Integer expressions that might overflow

This is something that expert VB developers know very well, yet every know and then an otherwise perfect VB app stops with a fatal overflow error because of Integer overflow. Consider the following code:

Dim LongVariable As LongLongVariable = 256 * 256

This raises the error “Runtime Error 6, Overflow”, even though the target variable can accomodate the result. The problem, in fact, is that when multiplying to Integer values VB assumes that the result is also an Integer. If you aren’t sure that this is correct, just force either operand to be a Long, as in:

Dim LongVariable As LongLongVariable = 256 * 256&

or:

Dim LongVariable As LongLongVariable = 256 * CLng(256)

devx-admin

Share the Post: