注册 登录
编程论坛 VB6论坛

求解len()语句应用

yscajf 发布于 2012-05-25 13:41, 1032 次点击
如A=1234567890 ,那么A的长度就为10,,可是用b=Len(a)算出来只有b的值是8  为什么会出现这种现象,

再问用什么函数或语句才能正确算出A的长度为10呢
5 回复
#2
bczgvip2012-05-25 18:36
A="1234567890"
#3
不说也罢2012-05-25 19:12
就楼主所说的问题来看,可能是你定义的数据类型不明确。看下面的例子:
Private Sub Command1_Click()
'这里的变量未经声明
    a = 1234567890
    MsgBox Len(a)'返回长度为10
    b = a
    MsgBox Len(b)'返回长度同样为10
End Sub

下一个例子:
Private Sub Command1_Click()
    Dim b As Double'定义b的类型为双精度型
    a = 1234567890
    MsgBox Len(a)'返回长度是10
    b = a
    MsgBox Len(b)'返回长度 就是8
End Sub

再下一个例子:
Private Sub Command1_Click()
    Dim b As Long '定义b的类型为长整型
    a = 1234567890
    MsgBox Len(a)'返回长度是10
    b = a
    MsgBox Len(b)'返回长度 这里就是4了
End Sub

再下一个例子:
Private Sub Command1_Click()
    Dim b As Integer'定义b的类型为单精度型
    a = 1234567890  '这就会出错了
    MsgBox Len(a)'返回长度是10
    b = a
    MsgBox Len(b)'返回长度 这里就是4了
End Sub

再来一个例子
Private Sub Command1_Click()
    Dim a As Double
    a = 1234567890
    MsgBox Len(Str(a))'用str函数转换一下,返回长度是11
    Dim b As String
    b = a
    MsgBox Len(b)'这里返回10
End Sub

其实,LEN是用来计算字符串的长度的。
所以,用VB要养成习惯,变量必须经过声明——在模块开始的代码中加入 Option Explicit

#4
qq3725058552012-06-20 11:52
以下是引用不说也罢在2012-5-25 19:12:51的发言:

就楼主所说的问题来看,可能是你定义的数据类型不明确。看下面的例子:
Private Sub Command1_Click()
'这里的变量未经声明
    a = 1234567890
    MsgBox Len(a)'返回长度为10
    b = a
    MsgBox Len(b)'返回长度同样为10
End Sub

下一个例子:
Private Sub Command1_Click()
    Dim b As Double'定义b的类型为双精度型
    a = 1234567890
    MsgBox Len(a)'返回长度是10
    b = a
    MsgBox Len(b)'返回长度 就是8
End Sub

再下一个例子:
Private Sub Command1_Click()
    Dim b As Long '定义b的类型为长整型
    a = 1234567890
    MsgBox Len(a)'返回长度是10
    b = a
    MsgBox Len(b)'返回长度 这里就是4了
End Sub

再下一个例子:
Private Sub Command1_Click()
    Dim b As Integer'定义b的类型为单精度型
    a = 1234567890  '这就会出错了
    MsgBox Len(a)'返回长度是10
    b = a
    MsgBox Len(b)'返回长度 这里就是4了
End Sub

再来一个例子
Private Sub Command1_Click()
    Dim a As Double
    a = 1234567890
    MsgBox Len(Str(a))'用str函数转换一下,返回长度是11
    Dim b As String
    b = a
    MsgBox Len(b)'这里返回10
End Sub

其实,LEN是用来计算字符串的长度的。
所以,用VB要养成习惯,变量必须经过声明——在模块开始的代码中加入 Option Explicit

顶起,特别是这一句:
LEN是用来计算字符串的长度的
是字符串,楼主你好像少了""
#5
yscajf2012-10-11 09:15
回复 3楼 不说也罢
谢谢了,,理解了,哈哈
#6
沉默的痞子2015-10-08 10:39
回复 3楼 不说也罢
Private Sub Command1_Click()
    Dim b As Integer'定义b的类型为单精度型
    a = 1234567890  '这就会出错了
    MsgBox Len(a)'返回长度是10
    b = a
    MsgBox Len(b)'返回长度 这里就是4了
End Sub
————————————————————————
这里为什么返回4?

这个例子中,如果a=100
len(b)就返回2, 为什么呢
1