类型转换函数

每个函数将强制转换为特定的数据类型表达式 。

语法

CBool ( 表达式

CByte ( 表达式

CCur ( 表达式

CDate ( 表达式

CDbl ( 表达式

CDec ( 表达式

CInt ( 表达式

CLng ( 表达式

CSng ( 表达式

CStr ( 表达式

CVar ( 表达式

所需的表达式参数是任何字符串表达式或数值表达式。

返回类型

函数名称决定返回类型,如下所示︰

函数

返回类型

区域 表达式 参数

CBool

布尔值

任何有效的字符串或数值表达式。

CByte

Byte

0 到 255。

CCur

货币

-922,337,203,685,477.5808 到 922337203685,477.5807。

CDate

Date

任何有效的日期表达式。

CDbl

Double

-1.79769313486231 e 308 到
-4.94065645841247 e-324 的负数的数值;4.94065645841247 e-324 到 1.79769313486232 e 308 的正数的数值。

CDec

Decimal

对于 + / 79228162514264337593543950335 零的数字,即,不带小数位数的数字。对于具有 28 位小数的数字,范围是
+ /-7.9228162514264337593543950335。最小的可能非零数字为 0.0000000000000000000000000001。

CInt

整型

-32768 到 32767;小数四舍五入。

CLng

-2147483648 至 2147483647;小数四舍五入。

CSng

Single

-3.402823 e 38 到-1.401298 e-45 的负数的数值;1.401298 e-45 到 3.402823 e 38 的正数的数值。

CStr

字符串

返回为 CStr 取决于表达式参数。

CVar

Variant

对于数值型与的范围相同。为字符串为非数值型的同一区域。


注解

如果表达式传递到函数是正在转换的数据类型的范围之外发生错误。

一般情况下,您可以记录您使用的数据类型转换函数来显示应表示某些操作的结果,为特定的数据类型而不是默认的数据类型的代码。例如,使用CCur强制货币运算中通常会的出现单精度、 双精度或整型运算。

应使用,而不是Val的数据类型转换函数来提供国际转换到另一种数据类型。例如,当使用CCur,不同的小数点分隔符不同千位分隔符,并且各种货币选项正确识别具体取决于您的计算机的区域设置。

当小数部分是完全 0.5, CIntCLng始终舍入到最接近的偶数。例如,0.5 舍入为 0,1.5 舍入为 2。CIntCLng不同于FixInt函数,其中截断,而不是进行舍入数字的小数部分。另外, FixInt会始终返回与传入的相同类型的值。

IsDate函数用于确定是否可以将日期转换为日期或时间。CDate可识别日期文本和时间文本,以及可接受的日期范围内的一些数字。将数字转换为日期时, 的整数部分将转换为日期。数字的小数部分将转换为一天,从午夜开始的时间。

CDate识别根据系统区域设置设置日期格式。如果它提供以外的某个可识别的日期设置格式,则可能不确定日、 月和年的正确顺序。此外,如果它还包含星期几的字符串无法识别长日期格式。

与早期版本的 Visual Basic 兼容性还提供了CVDate函数。CVDate函数的语法等同于CDate函数,但是, CVDate返回一个Variant其子类型是日期,而不是实际日期类型。由于现在是内部的日期类型,则不会再cvdate。可以通过将表达式转换为日期,然后将其分配给实现相同的效果。此方法是使用的所有其他固有类型转换为其等效一致子类型。

注意: CDec函数不返回离散数据类型;相反,它始终返回变量值已转换为十进制子类型。

示例

注意: 下面的示例说明使用此函数在 Visual Basic for Applications (VBA) 模块。有关处理 VBA 的详细信息,搜索旁边的下拉列表中选择开发人员参考,然后在搜索框中输入一个或多个术语。

CBool 函数

提示: 表达式生成器与 Access 2010 中的智能感知开头有助于获取正确的表达式。

此示例使用CBool函数转换为布尔表达式。如果该表达式计算结果为非零值, CBool ,则返回True;否则,返回False

Dim A, B, Check
A = 5: B = 5 ' Initialize variables.
Check = CBool(A = B) ' Check contains True.
A = 0 ' Define variable.
Check = CBool(A) ' Check contains False.

CByte 函数

此示例使用CByte函数将表达式转换成字节

Dim MyDouble, MyByte
MyDouble = 125.5678 ' MyDouble is a Double.
MyByte = CByte(MyDouble) ' MyByte contains 126.

CCur 函数

此示例使用CCur函数将表达式转换为货币

Dim MyDouble, MyCurr
MyDouble = 543.214588 ' MyDouble is a Double.
MyCurr = CCur(MyDouble * 2)
' Convert result of MyDouble * 2 (1086.429176) to a
' Currency (1086.4292).

CDate 函数

此示例使用CDate函数将字符串转换为日期。一般而言,不建议硬编码的日期和时间作为字符串 (如在本示例中所示)。使用日期文本和时间的文本,例如 #2/12/1969年 #,# 4:45:23 PM #,而是。

Dim MyDate, MyShortDate, MyTime, MyShortTime
MyDate = "February 12, 1969"
' Convert to Date data type.
MyShortDate = CDate(MyDate)
MyTime = "4:35:47 PM"
' Convert to Date data type.
MyShortTime = CDate(MyTime)

CDbl 函数

此示例使用CDbl函数将表达式转换为2 倍

Dim MyCurr, MyDouble
MyCurr = CCur(234.456784)
' Convert result to a Double.
MyDouble = CDbl(MyCurr * 8.2 * 0.01)

CDec 函数

此示例使用CDec函数将数值转换为十进制数

Dim MyDecimal, MyCurr
MyCurr = 10000000.0587 ' MyCurr is a Currency.
MyDecimal = CDec(MyCurr) ' MyDecimal is a Decimal.

CInt 函数

此示例使用CInt函数将值转换为整数

Dim MyDouble, MyInt
MyDouble = 2345.5678 ' MyDouble is a Double.
MyInt = CInt(MyDouble) ' MyInt contains 2346.

CLng 函数

此示例使用CLng函数值转换为

Dim MyVal1, MyVal2, MyLong1, MyLong2
MyVal1 = 25427.45
MyVal2 = 25427.55 ' MyVal1, MyVal2 are Doubles.
MyLong1 = CLng(MyVal1)
' MyLong1 contains 25427.
MyLong2 = CLng(MyVal2)
' MyLong2 contains 25428.

CSng 函数

此示例使用CSng函数值转换为单个

Dim MyDouble1, MyDouble2, MySingle1, MySingle2
' MyDouble1, MyDouble2 are Doubles.
MyDouble1 = 75.3421115: MyDouble2 = 75.3421555
MySingle1 = CSng(MyDouble1)
' MySingle1 contains 75.34211.
MySingle2 = CSng(MyDouble2)
' MySingle2 contains 75.34216.

CStr 函数

此示例使用CStr函数将数值转换为字符串

Dim MyDouble, MyString
MyDouble = 437.324 ' MyDouble is a Double.
MyString = CStr(MyDouble)
' MyString contains "437.324".

CVar 函数

此示例使用CVar函数转换为variant 类型的值的表达式。

Dim MyInt, MyVar
MyInt = 4534 ' MyInt is an Integer.
MyVar = CVar(MyInt & "000")
' MyVar contains the string 4534000.

注释: 

  • 机器翻译免责声明:本文是由无人工介入的计算机系统翻译的。Microsoft 提供机器翻译是为了帮助非英语国家/地区用户方便阅读有关 Microsoft 产品、服务和技术的内容。由于机器翻译的原因,本文可能包含词汇、语法或文法方面的错误。

  • 请在 此处 中查找本文的英文版本以便参考。你和 Microsoft 社区的其他成员可以使用 Community Translation Framework (CTF) 来改进本文。只需将鼠标悬停在文章中的句子上,然后在 CTF 小组件中单击“IMPROVE TRANSLATION”即可。 单击此处了解有关 CTF 的详细信息。 使用 CTF 即表示你同意服务条款

扩展你的技能
了解培训
抢先获得新功能
加入 Office 预览体验计划

此信息是否有帮助?

谢谢您的反馈!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×