函数名称 | 返回数据类型 | 表达式参数的范围 |
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
函数将表达式转换为 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
函数将表达式转换为 Byte
。
Dim aDouble As Double Dim aByte As Byte aDouble = 125.5678 ' 下面的代码将aByte的结果赋值为126. aByte = CByte(aDouble) |
下面的示例使用 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
函数将字符串转换为 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) |
Dim aDec As Decimal Dim aDbl As Double ' 在数值结尾加一个字母D表示数值为Decimal类型. aDec = 234.456784D ' 运行结果为1.9225456288E+1. aDbl = CDbl(aDec * 8.2D * 0.01D) |
下面的示例使用 CDec
函数将数值转换为 Decimal
。
Dim aDouble As Double Dim aDecimal As Decimal aDouble = 10000000.0587 ' 运行结果为10000000.0587. aDecimal = CDec(aDouble) |
下面的示例使用 CInt
函数将值转换为 Integer
。
Dim aDbl As Double Dim anInt As Integer aDbl = 2345.5678 ' 运行结果为2346. anInt = CInt(aDbl) |
下面的示例使用 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
函数将数值转换为 Object
。 Object
变量本身仅包含一个四字节指针,该指针指向分配给它的 Double
值。
Dim aDouble As Double Dim anObject As Object aDouble = 2.7182818284 ' 转换成object对象. anObject = CObj(aDouble) |
下面的示例使用 CSByte
函数将数值转换为 SByte
。
Dim aDouble As Double Dim anSByte As SByte aDouble = 39.501 ' 运行结果为40. anSByte = CSByte(aDouble) |
下面的示例使用 CShort
函数将数值转换为 Short
。
Dim aByte As Byte Dim aShort As Short aByte = 100 ' 运行结果为100. aShort = CShort(aByte) |
下面的示例使用 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
函数将数值转换为 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
函数将数值转换为 UInteger
。
Dim aDouble As Double Dim aUInteger As UInteger aDouble = 39.501 ' 运行结果为 40. aUInteger = CUInt(aDouble) |
下面的示例使用 CULng
函数将数值转换为 ULong
。
Dim aDouble As Double Dim aULong As ULong aDouble = 39.501 ' 运行结果为 40. aULong = CULng(aDouble) |
下面的示例使用 CUShort
函数将数值转换为 UShort
。
Dim aDouble As Double Dim aUShort As UShort aDouble = 39.501 ' 运行结果为 40. aUShort = CUShort(aDouble) |