VB实时错误6,溢出
发布网友
发布时间:2024-10-07 10:34
我来回答
共5个回答
热心网友
时间:2024-11-23 05:37
出现溢出问题的语句是这句:xt
=
1000
+
6500
*
i
/
n
给你解释下为什么:
xt的求算不是一步完成的,而是先后经过乘、除、加三种运算才得出的。在这个过程中VB会自动分配一个临时变量来存放计算过程中的中间结果,这个临时变量的类型是由两个操作数的数据类型中占用内存空间最大的那个数据类型来决定的。在计算过程中,由于i和6500都是ineteger类型的,所以存放6500*i结果的临时变量也默认为integer型。这时回过来再看当i=6时,6500*i的值是39000,已经超出了integer的范围,所以溢出。
修改方法:
1.把i定义为long
2.改成xt
=
1000
+
6500/
n*i
3.改成xt
=
1000
+
6500
*
(i
/
n)
热心网友
时间:2024-11-23 05:38
哪行出错啊
溢出是指数据超出定义的类型范围,比较可疑的只有
num = CInt(str1) * 256 * 256 * 256 + CInt(str2) * 256 * 256 + CInt(str3) * 256 + CInt(str4) - 1
和
numxx = CInt(str1xx) * 256 * 256 * 256 + CInt(str2xx) * 256 * 256 + CInt(str3xx) * 256 + CInt(str4xx) - 1
把cint改为cdbl吧
cint范围太小,三个256一乘马上溢出
热心网友
时间:2024-11-23 05:38
程序没有出错
由于你是固定读取20行内容,然后又循环20次读取,这样就等于读取40行内容,问题可能是因为你的文本文件中没有40行的内容,所以会溢出吧。
解决方法,在你的那个文本文件中放入足够多的行数的数据。
我已经按照你的意思自己编了这样一段代码看了一下,测试成功的。
热心网友
时间:2024-11-23 05:39
你的连接好像有问题,我帮你改了看可以吗?
Dim cn As New ADODB.Connection
Dim rs1 As New ADODB.Recordset
Dim sql As String
cn.ConnectionString = "provider=Microsoft.jet.OLEDB.4.0;Data source =" & App.Path & "\ip.mdb"
cn.Open
sql = "select top 1 * from address"
rs1.Open sql, cn, 3, 3
rs1.MoveFirst
热心网友
时间:2024-11-23 05:40
看不懂 不明白
你才是高手啊
这么多字都能打出来