When you pass a floating point number to an integer in VB.NET, the value is rounded to the nearest even number. Apparently rounding a number when converting it to an integer is a behavior that extends to days of the BASIC language.
However, when performing integer division (with the \ operator), the fractional part is simply discarded, regardless of which fractional part. That is why you get the behavior you see.
Jlrishe
source share