1  关于溢出
 Dim x As Long
    x = 2000 * 365   ' 错误: 溢出
要解决这个问题,请按如下方式键入该数字:    Dim x As Long
    x = CLng(2000) * 365  //为什么在clng(2000)就不溢出了?2 string$()是干什么用的
比如 常见 dim str as string
         str=string$(1024,0)
觉得是什么缓冲区有关吧  但到底是返回什么内容不知道
请大家讲讲

解决方案 »

  1.   

    第一个问题是这样的:
    2000 * 365 两个都是INTEGER类型的数字,得到的结果也会按照INTEGER来处理,而实际的结果超过了INTEGER的范围,所以才会溢出。而如果两个数字中有一个是LONG型的话,结果则会按照位数长的那个处理,也就是会变成LONG型所以就不会溢出了。
    第二个问题是这样的:
    string$()函数的参数有两个,第一个是LONG型的数字,第二个则是字符,结果就是产生了一个重复的字符串,字符串的长度由第一个参数决定,举个例子:
    ?string$(10,"?")
    得到的结果是 ??????????
    楼主明白了吗?