首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VBA >

为什么会溢出?该如何处理

2012-03-08 
为什么会溢出?有个程序如下:1)有四个单数分别为a,b,c,d(2)ab+cdx,(3)x*xabcd,请问这4个a,b,c,d的数是多

为什么会溢出?
有个程序如下:
1)有四个单数分别为a,b,c,d(2)ab+cd=x,(3)x*x=abcd,请问这4个a,b,c,d的数是多少?

Dim a As Integer, b As Integer, c As Integer, d As Integer:Dim x As Integer, y As Integer
For a = 0 To 9:For b = 0 To 9:For c = 0 To 9:For d = 0 To 9
x = Val(a & b) + Val(c & d):y = x * x
If y = Val(a & b & c & d) Then
Range("a1") = x:Range("a2") = x * x:Range("a3") = a:Range("a4") = b:Range("a5") = c:Range("a6") = d
End If
Next d
Next c
Next b
Next a
但运行程序后,却显示"y=x*x"这句为溢出错误.y和x*x的数值并不大,没有超出整型变量的范围,为什么还会出现溢出错误?

[解决办法]
Integer溢出就换Long
[解决办法]
设置一下断点,进行调试,看一下此时的 x 值是什么。

QQ群 48866293 OFFICE应用挖掘  
MS OFFICE(ACCESS\EXCE\WORD等应用技术探讨与交流!技术群,请阅群论坛中的《踢人规则》
[解决办法]
楼主不要总用:来把表达式连在一行好不好?这样就省一个换行符,但是单步就特别麻烦,怎么这么个习惯啊?

问题还是一个:你单步了么?只要你在调试器里执行,很显然可以看出结果超出了Integer的范围(-32768 到32767),这种简单的问题应该自己调试

热点排行