| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1163 人关注过本帖
标题:求助高手帮忙看下,新手,代码溢出问题
只看楼主 加入收藏
hui3643616
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2018-6-12
结帖率:0
收藏
已结贴  问题点数:20 回复次数:3 
求助高手帮忙看下,新手,代码溢出问题
Option Base 1
Private Sub Command1_Click()

Dim arr() As Integer, m As Integer, i As Integer, a As Integer
For a = 0 To Op1.Count - 1
If Op1(a).Value = ture Then
m = Val(Op1(a).Caption)
End If
Next a
ReDim arr(m)
arr(1) = 1
arr(2) = 1
For i = 3 To m
arr(i) = arr(i - 1) + arr(i - 2)           这里i=24的时候老是溢出,实在找不到原因
Next
Text1.Text = arr(m)
End Sub
搜索更多相关主题的帖子: 代码 溢出 Sub Integer Next 
2018-06-12 15:35
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:7 
Dim arr() As Integer改成Dim arr() As long

能编个毛线衣吗?
2018-06-12 16:50
ZHRXJR
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:125
帖 子:1034
专家分:5519
注 册:2016-5-10
收藏
得分:7 
Dim Arr() As Integer,m=23 时 arr(22)=17711,arr(23)=28657,可知arr(24)=17711+28657=46368,m=24会超出 Integer 的范围了,因此溢出, Integer 的最大值=32757  
Dim Arr() As Long,m=46     arr(45)=1134903170,arr(46)=1836311903,可知arr(47)=2971215073,m=47会超出 Long 的范围了,因此溢出,  Long 的最大值=2147483647   
Dim Arr() As Single ,m=186 时 arr(185)=2.05697E+38,arr(186)=3.32825E+38, 可知arr(187)=5.38522E+38,m=187会超出 Single 的范围了,因此溢出, Single 的最大值=3.402823E+38   
Dim Arr() As Double,只测试到 m=500 时 arr(499)=8.61682916002383E+103,arr(500)=1.39423224561698E+104, 远小于 Double 的最大值1.79769313486232E+308,因此没有溢出。但如果 m 够大,超出 Double 的最大值也会溢出的。
那么需要根据你的 m = Val(Op1(a).Caption) 设置 arr 的数据类型,大于23,小于46,使用 Long 数据,大于46,小于186,使用 Single 数据,大于186,使用 Double 数据,但这个上限没有测试,估计在1000以上。

[此贴子已经被作者于2018-6-12 18:30编辑过]


请不要选我!!!
2018-06-12 18:28
Artless
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:4211
专家分:28888
注 册:2009-4-8
收藏
得分:7 
arr(22)+arr(23)超过Integer

无知
2018-06-12 23:49
快速回复:求助高手帮忙看下,新手,代码溢出问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021807 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved