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)