VB6 and .NET integer division
Description
In VBUC versions lower than 8.2, the division between two integers is migrated to a non-equivalent statement.
Consider the following VB6 code:
VB6 Code
The code was migrated to this:
.NET Code
That division statement is not equivalent in .NET because, for operands of integer type, the / operator returns an integer, consisting of the quotient rounded towards zero.
Consider the following examples:
VB6 Code
The result in VB6 is 3.
.NET Code
The result in .NET is 2.
To obtain a floating-point quotient, one of the operands should be cast as float, double, or decimal type:
.NET Code
The result with the modifications is 3.
The code is now equivalent. Notice the result should be converted to an integer.
Last updated