Undocumented behavior of the CInt() function

Undocumented behavior of the CInt() function

The CInt() function rounds to the nearest integer value. In other words, CInt(2.4) returns 2, and CInt(2.6) returns 3.

This function exhibits an under-documented behavior when the fractional part is equal to 0.5. In this case, this function rounds down if the integer portion of the argument is even, but it rounds up if the integer portion is an odd number. For example, CInt(2.5) returns 2, but CInt(3.5) returns 4.

This behavior shouldn’t be considered as a bug, because it helps not to introduce errors when doing statistical calculations.UPDATE: Matthew Wills let us know that this behavior is indeed documented in VB6’s help file:When the fractional part is exactly 0.5, CInt and CLng always round it tothe nearest even number. For example, 0.5 rounds to 0, and 1.5 rounds to 2.CInt and CLng differ from the Fix and Int functions, which truncate, ratherthan round, the fractional part of a number. Also, Fix and Int always returna value of the same type as is passed in.

See also  11 Effective Keyword Research Tools and Techniques

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist