用len遇到个奇怪的问题
vb.net吧
全部回复
仅看楼主
level 1
举杯邀月影
楼主
for t1 = 1 to 12
a(t1)=t1*100
next
上面这是一开始给数组a赋值的过程,下边是后面一些其他运算时中断后提取的值:
t1=0
a(t1+1)=100
len(a(t1+1))=4 ←——问题就出在这里,a(t1+1)的值是100,那么长度应该是3才对,为什么会返回4?我下面的代码是根据长度运算的,一旦长度错了,就整段都错了。
PS:下面的t1和上面的并不冲突,不同的过程中的,下面其实是个for t1 = 0 to 11的循环。
2012年09月19日 13点09分
1
level 1
举杯邀月影
楼主
找到原因了,我把引号漏了,低级失误低级失误……
2012年09月19日 13点09分
2
level 1
举杯邀月影
楼主
也不对,加上引号里面就成字符串了,是不该有引号的。
但没引号不管里面多大的数字都返回4,即使我在中断后的监视里输入len(999999999)也还是返回4,不知道是怎么回事……
2012年09月19日 14点09分
3
Nukepayload2
肯定是4啊,这个数占4字节
2012年09月24日 12点09分
level 12
坂井悠二の阴谋
看说明:
对于非字符串类型,返回的是变量的长度。
vb.net里普通的整数字面值类型是integer(int32),所以字节长度是4。
再比如len(2.2),2.2是double(float64),字节长度为8。
2012年09月20日 03点09分
4
举杯邀月影
多谢指点,原来是这意思,那如果要返回一个数字位数该怎么做呢?我现在用的是笨办法,用SELECT CASE来判断数字大小,并赋值给一变量,比如CASE 0 TO 9,某变量=1,CASE 10 TO 99,某变量=2这样。
2012年09月21日 01点09分
坂井悠二の阴谋
回复 举杯邀月影 :把数字的值转换成字符串,Dim a="343".ToString().Length
2012年09月21日 01点09分
举杯邀月影
回复 坂井悠二の阴谋 :谢谢。
2012年09月22日 13点09分
1