Previous topicNext topic
Help > 开发指南 > 编程基础 > VB编程基础 >
数据类型转换函数

 

函数名称 返回数据类型 表达式参数的范围
CBool Boolean 任何有效的 Char 或 String 或是数值表达式。
CByte Byte Byte.MinValue (0) 到 Byte.MaxValue (255)(无符号);小数部分会舍入。1
CChar Char 任何有效的 Char 或 String 表达式;只转换 String 的第一个字符;值可以是 0 到 65535(无符号)。
CDate Date 任何有效的日期和时间表示形式。
CDbl Double 对于负值为 -1.79769313486231570E+308 到 -4.94065645841246544E-324;对于正值为 4.94065645841246544E-324 到 1.79769313486231570E+308。
CDec Decimal 对于零缩放数字(即没有小数位的数字),为 +/-79,228,162,514,264,337,593,543,950,335。 对于带有 28 个小数位的数字,范围为 +/-7.9228162514264337593543950335。 可能的最小非零数字为 0.0000000000000000000000000001 (+/-1E-28)。
CInt Integer Int32.MinValue (-2,147,483,648) 到 Int32.MaxValue (2,147,483,647);小数部分会舍入。1
CLng Long Int64.MinValue (-9,223,372,036,854,775,808) 到 Int64.MaxValue (9,223,372,036,854,775,807);小数部分会舍入。
CObj Object Data Type 任何有效的表达式。
CSByte SByte SByte.MinValue (-128) 到 SByte.MaxValue (127);
CShort Short Int16.MinValue (-32,768) 到 Int16.MaxValue (32,767);小数部分会舍入。
CSng Single 对于负值,为 -3.402823E+38 到 -1.401298E-45;对于正值,为 1.401298E-45 到 3.402823E+38。
CStr String CStr 的返回值取决于 expression 参数。 请参阅返回 CStr 函数的值。
CUInt UInteger UInt32.MinValue (0) 到 UInt32.MaxValue (4,294,967,295)(无符号);小数部分会舍入。1
CULng ULong UInt64.MinValue (0) 到 UInt64.MaxValue (18,446,744,073,709,551,615)(无符号);小数部分会舍入。1
CUShort UShort UInt16.MinValue (0) 到 UInt16.MaxValue (65,535)(无符号);小数部分会舍入。1

CBool 示例

下面的示例使用 CBool 函数将表达式转换为 Boolean 值。 如果表达式计算结果为非零值,则 CBool 返回 True;否则返回 False。

Dim a, b, c As Integer
Dim check As Boolean
a = 5
b = 5
' 下面的代码将check的结果赋值为True.
check = CBool(a = b)
c = 0
' 下面的代码将check的结果赋值为False.
check = CBool(c)

CByte 示例

下面的示例使用 CByte 函数将表达式转换为 Byte。

Dim aDouble As Double
Dim aByte As Byte
aDouble = 125.5678
' 下面的代码将aByte的结果赋值为126.
aByte = CByte(aDouble)

CChar 示例

下面的示例使用 CChar 函数将 String 表达式的第一个字符转换为 Char 类型。

Dim aString As String
Dim aChar As Char
' CChar 仅转化字符串的第一个字符.
aString = "BCD"
' 运行结果为"B".
aChar = CChar(aString)

CChar 的输入参数必须属于数据类型 Char 或 String。 无法使用 CChar 将数字转换为字符,因为 CChar 无法接受数值数据类型。 下面的示例获取一个表示码位(字符代码)的数字并将它转换为对应的字符。 它使用 InputBox 函数获取数字字符串,使用 CInt 将字符串转换为类型 Integer,并使用 ChrW 将数字转换为类型 Char。

Dim someDigits As String
Dim codePoint As Integer
Dim thisChar As Char
someDigits = InputBox("Enter code point of character:")
codePoint = CInt(someDigits)
' The following line of code sets thisChar to the Char value of codePoint.
thisChar = ChrW(codePoint)

CDate 示例

下面的示例使用 CDate 函数将字符串转换为 Date 值。 一般而言,不建议将日期和时间硬编码为字符串(如本示例中所示)。 请改为使用日期和时间文本,例如 #Feb 12、1969# 和 #4:45:23 PM#。

Dim aDateString, aTimeString As String
Dim aDate, aTime As Date
aDateString = "February 12, 1969"
aTimeString = "4:35:47 PM"
' 转化成相应的日期类型.
aDate = CDate(aDateString)
' The following line of code sets aTime to Date value.
aTime = CDate(aTimeString)

CDbl 示例
Dim aDec As Decimal
Dim aDbl As Double
' 在数值结尾加一个字母D表示数值为Decimal类型.
aDec = 234.456784D
' 运行结果为1.9225456288E+1.
aDbl = CDbl(aDec * 8.2D * 0.01D)
CDec 示例

下面的示例使用 CDec 函数将数值转换为 Decimal。

Dim aDouble As Double
Dim aDecimal As Decimal
aDouble = 10000000.0587
' 运行结果为10000000.0587.
aDecimal = CDec(aDouble)

CInt 示例

下面的示例使用 CInt 函数将值转换为 Integer。

Dim aDbl As Double
Dim anInt As Integer
aDbl = 2345.5678
' 运行结果为2346.
anInt = CInt(aDbl)

CLng 示例

下面的示例使用 CLng 函数将值转换为 Long。

Dim aDbl1, aDbl2 As Double
Dim aLng1, aLng2 As Long
aDbl1 = 25427.45
aDbl2 = 25427.55
' 运行结果为25427.
aLng1 = CLng(aDbl1)
' 运行结果为25428.
aLng2 = CLng(aDbl2)

CObj 示例

下面的示例使用 CObj 函数将数值转换为 Object。 Object 变量本身仅包含一个四字节指针,该指针指向分配给它的 Double 值。

Dim aDouble As Double
Dim anObject As Object
aDouble = 2.7182818284
' 转换成object对象.
anObject = CObj(aDouble)

CSByte 示例

下面的示例使用 CSByte 函数将数值转换为 SByte。

Dim aDouble As Double
Dim anSByte As SByte
aDouble = 39.501
' 运行结果为40.
anSByte = CSByte(aDouble)

CShort 示例

下面的示例使用 CShort 函数将数值转换为 Short。

Dim aByte As Byte
Dim aShort As Short
aByte = 100
' 运行结果为100.
aShort = CShort(aByte)

CSng 示例

下面的示例使用 CSng 函数将值转换为 Single。

Dim aDouble1, aDouble2 As Double
Dim aSingle1, aSingle2 As Single
aDouble1 = 75.3421105
aDouble2 = 75.3421567
' 运行结果为75.34211.
aSingle1 = CSng(aDouble1)
' 运行结果为 75.34216.
aSingle2 = CSng(aDouble2)

CStr 示例

下面的示例使用 CStr 函数将数值转换为 String。

Dim aDouble As Double
Dim aString As String
aDouble = 437.324
' 运行结果为 "437.324".
aString = CStr(aDouble)

下面的示例使用 CStr 函数将 Date 值转换为 String 值。

Dim aDate As Date
Dim aString As String
' The following line of code generates a COMPILER ERROR because of invalid format.
' aDate = #February 12, 1969 00:00:00#
' Date literals must be in the format #m/d/yyyy# or they are invalid.
' The following line of code sets the time component of aDate to midnight.
aDate = #2/12/1969#
' The following conversion suppresses the neutral time value of 00:00:00.
' The following line of code sets aString to "2/12/1969".
aString = CStr(aDate)
' The following line of code sets the time component of aDate to one second past midnight.
aDate = #2/12/1969 12:00:01 AM#
' The time component becomes part of the converted value.
' 运行结果为"2/12/1969 12:00:01 AM".
aString = CStr(aDate)

CStr 始终以当前区域设置的标准短格式呈现 Date 值,例如“6/15/2003 4:35:47 PM”。 但是,CStr 禁止显示日期的中性值 1/1/0001 和时间的中性值 00:00:00。

有关 CStr 返回的值的更多详细信息,请参阅返回 CStr 函数的值。

CUInt 示例

下面的示例使用 CUInt 函数将数值转换为 UInteger。

Dim aDouble As Double
Dim aUInteger As UInteger
aDouble = 39.501
' 运行结果为 40.
aUInteger = CUInt(aDouble)

CULng 示例

下面的示例使用 CULng 函数将数值转换为 ULong。

Dim aDouble As Double
Dim aULong As ULong
aDouble = 39.501
' 运行结果为 40.
aULong = CULng(aDouble)

CUShort 示例

下面的示例使用 CUShort 函数将数值转换为 UShort。

Dim aDouble As Double
Dim aUShort As UShort
aDouble = 39.501
' 运行结果为 40.
aUShort = CUShort(aDouble)