类型转换函数

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

语法

CBool ( 表达式 )

CByte ( 表达式 )

CCur ( 表达式 )

CDate ( 表达式 )

CDbl ( 表达式 )

CDec ( 表达式 )

CInt ( 表达式 )

CLng ( 表达式 )

CSng ( 表达式 )

CStr ( 表达式 )

CVar ( 表达式 )

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

返回类型

函数名称确定返回类型, 如下所示:

函数

返回类型

范围 表达式 参数

CBool

布尔

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

CByte

字节

0到255。

CCur

货币

-922337203685477.5808 到922337203685477.5807。

CDate

日期

任何有效的日期表达式。

CDbl

Double

-1.79769313486231 e 308 to
-4.94065645841247 e-324 为负值;4.94065645841247 e-324 到 1.79769313486232 E 308 for 正值。

CDec

Decimal

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

CInt

整型

-32768 到 32767;将舍入分数。

CLng

长远

-2147483648 到 2147483647;将舍入分数。

CSng

Single

-3.402823 e 38 to-1.401298 E-45 为负值;1.401298 e-45 到 3.402823 e 38 for 正值。

CStr

String

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

CVar

Variant

对于数值型, 范围与双精度相同。 与非数值型的字符串具有相同的范围。

备注

如果传递到函数的表达式超出要转换为的数据类型的范围, 则会发生错误。

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

应使用数据类型转换函数而不是Val来提供从一种数据类型到另一种数据类型的国际感知转换。 例如, 当你使用CCur时, 不同的小数分隔符、不同的千位分隔符和各种货币选项均根据计算机的区域设置被正确识别。

当小数部分正好为0.5 时, CIntCLng始终将其舍入到最接近的偶数。 例如, 0.5 舍入到 0, 1.5 舍入到2。 CIntCLng不同于FixInt函数, 这些函数截断, 而不是舍入数字的小数部分。 同样, FixInt始终返回与传入的类型相同的值。

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

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

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

注意: CDec函数不返回离散数据类型;相反, 它始终返回其值已转换为Decimal子类型的Variant

查询示例

表达式

结果

从 FinalPrice 选择 SalePrice、FinalPrice、CBool (SalePrice>ProductSales) 作为表达式 1;

返回 "SalePrice"、"FinalPrice", 并评估 SalePrice 是否大于最终价格。 如果为 true, 则返回 "-1"; 如果为 false, 则返回 "0"。

选择 "产品 Id"、"CByte" (数量) 作为从 productSales 中的表达式 1;

返回 "ProductID", 将 "数量" 字段中的值转换为 bytes 格式, 并在列表达式中显示返回 "ProductID", 将 "数量" 字段中的值转换为货币格式, 并显示在列表达式1中。

选择 "ProductID, CDate (DateofSale)" 作为从 productSales 中的表达式 1;

返回 "ProductID", 将 "DateofSale" 字段中的值转换为日期格式, 并显示在列表达式1中。

从 productSales 中选择 "ProductID, CDbl (折扣)" 作为表达式1。

返回 "ProductID", 将 "折扣" 字段中的值转换为双倍格式并在列表达式中显示。

从 productSales 中选择 "ProductID, CInt (折扣)" 作为表达式1。

返回 "ProductID", 将 "折扣" 字段中的值转换为整数格式, 并显示在列表达式1中。

选择 "ProductID, CLng" (折扣) 作为从 productSales 中的表达式 1;

返回 "ProductID", 将 "折扣" 字段中的值转换为长格式并在列表达式中显示。

选择 "ProductID, CSng" (折扣) 作为从 productSales 中的表达式 1;

返回 "ProductID", 将 "折扣" 字段中的值转换为单个格式, 并显示在列表达式1中。

从 productSales 中选择 "ProductID"、"CStr" (折扣) 作为表达式1。

返回 "ProductID", 将 "折扣" 字段中的值转换为字符串格式, 并显示在列表达式1中。

选择 "ProductID, CVar" (折扣) 作为从 productSales 中的表达式 1;

返回 "ProductID", 将 "折扣" 字段中的值转换为双倍数值和非数字值的字符串。

VBA 示例

注意: 下面的示例演示了在 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函数将表达式转换为Double

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函数将值转换为Long

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函数将值转换为Single

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.

注意:  本页面是自动翻译的,可能包含语法错误或不准确之处。 我们的目的是使此内容能对你有所帮助。 能否告知我们此信息是否有所帮助? 下面是该参考内容的英文版

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

此信息是否有帮助?

谢谢您的反馈!

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

×