每个函数都将 表达式 强制转换为特定 数据类型 。
语法
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 |
CDec |
Decimal |
+/-79228162514264337593543950335, 为零缩放数字, 即没有小数位数的数字。 对于具有28位小数的数字, 范围为 |
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 时, CInt和CLng始终将其舍入到最接近的偶数。 例如, 0.5 舍入到 0, 1.5 舍入到2。 CInt和CLng不同于Fix和Int函数, 这些函数截断, 而不是舍入数字的小数部分。 同样, Fix和Int始终返回与传入的类型相同的值。
使用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.
注意: 本页面是自动翻译的,可能包含语法错误或不准确之处。 我们的目的是使此内容能对你有所帮助。 能否告知我们此信息是否有所帮助? 下面是该参考内容的英文版。