You can convert a numeric,
Boolean, or date/time value to a
String. You can also convert in the reverse direction — from a string value to numeric,
Date — provided the contents of the string can be interpreted as a valid value of the destination data type. If they cannot, a run-time error occurs.
The conversions for all these assignments, in either direction, are narrowing conversions. You should use the type conversion keywords (
CType). The Format and Val functions give you additional control over conversions between strings and numbers.
If you have defined a class or structure, you can define type conversion operators between
String and the type of your class or structure. For more information, see How to: Define a Conversion Operator.
Conversion of Numbers to Strings
You can use the
Format function to convert a number to a formatted string, which can include not only the appropriate digits but also formatting symbols such as a currency sign (such as
$), thousands separators or digit grouping symbols (such as
,), and a decimal separator (such as
Format automatically uses the appropriate symbols according to the Regional Options settings specified in the Windows Control Panel.
Note that the concatenation (
&) operator can convert a number to a string implicitly, as the following example shows.
' The following statement converts count to a String value. Str = "The total count is " & count
Conversion of Strings to Numbers
You can use the
Val function to explicitly convert the digits in a string to a number.
Val reads the string until it encounters a character other than a digit, space, tab, line feed, or period. The sequences "&O" and "&H" alter the base of the number system and terminate the scanning. Until it stops reading,
Val converts all appropriate characters to a numeric value. For example, the following statement returns the value
Val(" 14 1.825 miles")
When Visual Basic converts a string to a numeric value, it uses the Regional Options settings specified in the Windows Control Panel to interpret the thousands separator, decimal separator, and currency symbol. This means that a conversion might succeed under one setting but not another. For example,
"$14.20" is acceptable in the English (United States) locale but not in any French locale.
Type Conversions in Visual Basic
Widening and Narrowing Conversions
Implicit and Explicit Conversions
How to: Convert an Object to Another Type in Visual Basic
Type Conversion Functions
Introduction to International Applications Based on the .NET Framework