当前位置:编程问答 > VB >

VB6 运行溢出报错

问题:以下三个二维数组大小为(240,320)数据类型为integer,下面是代码中一段 For i = 1 To (240 - 1) For j = 1 To (320 - 1) Edgexy(i, j) = Sqr(Edgex(i, j) * Edgex(i, j) + Edgey(i, j) * Edgey(i, j)) Next j Next i 程序每次运行到这里的时候就报错,错误类型为“溢出”,但是Edgex和Edgey这两个数组中的所有数据都在150以下,就算是求平方后数据也没有超过VB的Integer的最大值啊,一直卡在这里,搞不懂,望高手指教,急等,谢谢!
答案:看一下溢出时表达式各项的值都是多少,或者把表达式各项都用CDbl()函数处理一下.但如果运算结果会超出Integer范围的话,就必须改更大的数据类型了.
其他:负数开平方也能溢出报错
由于你没贴出数据,所以有可能 列式的问题.这样改下试试.
For i = 1 To (240 - 1)
    For j = 1 To (320 - 1)
       m=edgex(i,j)*edgex(i,j)
       n=edgey(i,j)*edgey(i,j)
       k=m+n
       Edgexy(i, j) = Sqr(k)
    Next j
  Next i 

上一个:VB 怎么赋值达到通用的效果
下一个:VB如何选择某一个复选框后,让我设计的程序关闭。

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,