社区
VB基础类
帖子详情
Dim i As Long i = 3600 * 10 居然溢出??!!
zhangweiqiang
2003-12-24 02:06:39
Dim i As Long
i = 3600 * 10
上述代码运行时居然溢出,而若直接改成
Dim i As Long
i = 36000
再运行便没有事,这真是一件怪事,有谁知道是什么原因吗?(环境VB6+SP5)如果你机器没事,请告诉我你的环境
...全文
396
11
打赏
收藏
Dim i As Long i = 3600 * 10 居然溢出??!!
Dim i As Long i = 3600 * 10 上述代码运行时居然溢出,而若直接改成 Dim i As Long i = 36000 再运行便没有事,这真是一件怪事,有谁知道是什么原因吗?(环境VB6+SP5)如果你机器没事,请告诉我你的环境
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
thriller
2003-12-24
打赏
举报
回复
msdn:
You attempt to use a number in a calculation, and that number is coerced into an integer, but the result is larger than an integer. For example:
Dim x As Long
x = 2000 * 365 ' Error: Overflow
hspring
2003-12-24
打赏
举报
回复
两个整型的相乘当然还是整型的,你把它付给长整型的当然溢出了
这样可以
i=clng(3600)*clng(10)
ahbbnimor
2003-12-24
打赏
举报
回复
up
高高兴兴的晶晶
2003-12-24
打赏
举报
回复
学学
flyingZFX
2003-12-24
打赏
举报
回复
To Greaitm(夜草) ::
你从哪本VB书上看到的,,介绍给我呀,?
Greaitm
2003-12-24
打赏
举报
回复
用& 而不要用CLng
因为你的参数中用了&,vb编译器就会使用长整的寄存器(vb会根据代码查找最长的变量,并设置寄存器),但如果你用Clng的话,就变成初始化时是整数,然后再转换成长整,这样不科学。
蜗牛20008
2003-12-24
打赏
举报
回复
Dim i As Long
i = 3600& * 10&
--------------------
&means long
tonyLonge
2003-12-24
打赏
举报
回复
很同意楼上的liuyanghe111(yang) 说法
将
Dim i As Long
i = 3600 * 10
改成
Dim i As Long
i = CLng(3600) * CLng(10) 就对了.
Greaitm
2003-12-24
打赏
举报
回复
i = 3600& * 10
就可以了
liuyanghe111
2003-12-24
打赏
举报
回复
因为在表达式中,3600和10都是默认为int型的,系统会将3600*10的结果填充到int型的内存空间中,而36000>32767,所以溢出
IT服务
2003-12-24
打赏
举报
回复
VB里不能在定意的时候给它付值啊.这样写不对吧.
求n个整数的阶乘1!+2!+3!+...n!,VB.net源代码
求n个整数的阶乘1!+2!+3!+...n!,VB.net源代码
精彩编程与编程技巧-一个关于乘法
溢出
问题的探讨...
精彩编程与编程技巧-一个关于乘法
溢出
问题的探讨 ...
VB基本算法——累加和累乘.docx
VB基本算法——累加和累乘.docx
VB 用过程求组合数
VB 用过程求组合数 VB 用过程求组合数 VB 用过程求组合数
VB 求n的阶乘
VB 求n的阶乘 VB 求n的阶乘 VB 求n的阶乘
VB基础类
7,785
社区成员
197,585
社区内容
发帖
与我相关
我的任务
VB基础类
VB 基础类
复制链接
扫一扫
分享
社区描述
VB 基础类
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章