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如何选择某一个复选框后,让我设计的程序关闭。