为什么会溢出?
有个程序如下:
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),这种简单的问题应该自己调试