CLng 函数

返回已转换为子类型 Long 的变体的一个表达式。

语法

CLng(expression)

注释

expression 参数是任何有效的表达式。

可使用 CLng 函数实现从任何其他数据类型到 Long 子类型的国际化转换。例如,根据系统的区域设置,可以正确识别不同的小数分隔符,也可以识别不同的千位分隔符。

如果 expression 超出 Long 子类型的可接受范围,则会出现错误。

以下示例使用 CLng 函数将值转换为 Long 子类型:

示例 1

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

示例 2

Dim MyString, MyLong
MyString = "123456.78"    
MyLong = CLng(MyString)   
'Output: 123457

示例 3

Dim MyLocaleString
MyLocaleString = "12.345,67"   ' Locale-specific decimal separator.
MyLong = CLng(MyLocaleString)  ' Convert to Long, interpreted based on locale.
'MyLong contains the correctly interpreted long value within locale settings

示例 4

MyDouble = 2.6
MyLong = CLng(MyDouble)   ' 2.6 rounds to 3.
'Output: 3

示例 5

MyDouble = 2.4
MyLong = CLng(MyDouble)   ' 2.4 rounds to 2.
'Output: 2

示例 6

MyDouble = 1.5
MyLong = CLng(MyDouble)   ' 1.5 rounds to 2 (nearest even number).
'Output: 2

示例 7

MyDouble = 0.5
MyLong = CLng(MyDouble)   ' 0.5 rounds to 0 (nearest even number).
'Output: 0

注:

CLng 与 Fix 和 Int 函数不同,后者截断而不是舍入数字的小数部分。当小数部分正好为 0.5 时,CLng 函数始终将其舍入到最接近的偶数。例如,将 0.5 舍入为 0,将 1.5 舍入为 2。