字符串和其他类型之间的转换 (Visual Basic)

可以将数字、Boolean 或日期/时间值转换为 String。 还可以反向进行转换(从字符串值转换为数字、BooleanDate,前提是字符串的内容可以解释为目标数据类型的有效值。 如果无法运行,则会发生运行时错误。

所有这些分配的转换均为任意方向,均为收缩转换。 应使用类型转换关键字(CBoolCByteCDateCDblCDecCIntCLngCSByteCShortCSngCStrCUIntCULngCUShortCType)。 FormatVal 函数使你可以对字符串和数字之间的转换进行额外的控制。

如果已定义类或结构,则可以在 String 与类或结构的类型之间定义类型转换运算符。 有关更多信息,请参见 How to: Define a Conversion Operator

数字到字符串的转换

可以使用 Format 函数将数字转换为格式化字符串,该字符串不仅可以包含相应的数字,还可以包括格式化符号,如货币符号(如 $)、千位分隔符或 数字分组符号(如 ,)和小数点分隔符(如 .)。 Format 根据 Windows 控制面板中指定的“区域选项”设置自动使用适当的符号。

请注意,串联 (&) 运算符可以将数字隐式转换为字符串,如下面的示例所示。

' The following statement converts count to a String value.  
Str = "The total count is " & count  

字符串到数字的转换

可以使用 Val 函数将字符串中的数字显式转换为数字。 Val 读取字符串,直到遇到数字、空格、制表符、换行符或句点以外的字符。 序列“&O”和“&H”会改变数字系统的基数并终止扫描。 在停止读取之前,Val 会将所有适当的字符转换为数值。 例如,下面的语句返回值 141.825

Val(" 14 1.825 miles")

当 Visual Basic 将字符串转换为数值时,它将使用 Windows 控制面板中指定的“区域选项”设置来解释千位分隔符、小数点分隔符和货币符号。 这意味着在一种设置下转换可能会成功,但在另一种设置下转换可能不会成功。 例如,"$14.20" 在英语(美国)区域设置中是可以接受的,但在任何法语区域设置中都是不可接受的。

另请参阅