In Microsoft Visual Basic Programming System, Applications Edition, when you use the CInt() function with a string that cannot be converted to a number, you receive the following error message:

Run-time error '13':

Type Mismatch

More Information

The CInt function converts an expression to an integer. You can use any valid numeric or string expression, but the string expression must be able to be converted to a number. The Visual Basic Reference states that you should use the CInt function instead of the Val function to provide internationally aware conversions from any other data type to Integer. However, the two functions do not behave exactly the same.

When you use the Val function to return the numbers contained in a string, only the first numeric characters in the string are returned. While the Val function returns only the numeric part of a string expression, the CInt function returns the error message above if the string expression cannot be evaluated as a number.

The following is a table of expressions and values returned by the CInt and the Val functions.

Expression Value Returned
Val("1726 56th Ave NE") 172656
CInt("1726 56th Ave NE") Error message
Val("asdf") 0
Cint("asdf") Error message
Val("1,000") 1
CInt("1,000") 1000
Val("1.34") 1.34
CInt("1.34") 1

Because the Val function returns the value 0 when used with an expression that contains either 0 or no numbers at all, you cannot use it to test whether an input string is a valid number. You can, however, use the CInt function in a procedure to determine whether an input string is a valid number.


For more information about the CInt Function, choose the Search button in the Visual Basic Reference and type:


Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Insiders

Was this information helpful?

What affected your experience?

Thank you for your feedback!