Does \ perform integer division in VB?

dotNETbeginner picture dotNETbeginner · Aug 26, 2011 · Viewed 13.4k times · Source

In VB.NET even if both the operands are integer, the / operator will cause the value to be floating point (if the result is non integer).

So I tried with the \ operator which yields integer value irrespective of the operands.
So I thought \ is integer division.

2.5 \ 3 results in 0.

Now I tried 1.5 \ 2. I expected it to be 0 but it resulted in a 1.
Now, is it a bug or a correct result?
What the \ operator actually is?

If it's a bug it exists right through VB6.

Answer

user541686 picture user541686 · Aug 26, 2011

If you use \ on non-integers, you first convert them to integers, which causes rounding: the equivalent of CLng(1.5) \ 2, which is 2 \ 2 or 1.

If you use Option Strict On then you will see this taking place.