织梦CMS - 轻松建站从此开始!

罗索

当前位置: 主页>老古董>VB>

VB aaa=100*360 竟然溢出

罗索客 发布于 2006-01-05 09:37 点击:次 
aaa=100*360 竟然溢出 编号:QA004431 建立日期: 2001年9月26日 最后修改日期:2001年10月4日 所属类别: Visual Basic - 错误信息 彭元: 最近搞开发遇到一个简单又奇怪的问题。 win98 vb6.0 的环境下 Dim aaa As Double aaa=100*65535 msgbox aaa aaa=100*360 msgbox a
TAG:

aaa=100*360 竟然溢出

编号:QA004431
建立日期: 2001年9月26日 最后修改日期:2001年10月4日
所属类别:

Visual Basic - 错误信息

彭元:
    最近搞开发遇到一个简单又奇怪的问题。 win98 vb6.0 的环境下
     Dim aaa As Double
    
     aaa=100*65535
     msgbox aaa
    
     aaa=100*360
     msgbox aaa
    aaa=100*360 竟然溢出,实时错误6 。
    把100 和 360 给变量相乘就没有问题。请给看看帮着研究研究。

回答:

    非常有趣,可能是VB的BUG,如果改为
    aaa=100# * 360
    就不出错。
    
    sapphire的意见:
    VB不能自动转换计算的结果,如果有溢出或者是类型的转换就报错,这个在MSDN中有说明,所以就必须将计算的时候自己设置转换。这个现象MSDN上有详细的解释,因为参加运算的数字都是小于32768的,所以系统认为结果也是整形,所以只要将运算的一个数字改为LONG的结果就是LONG型,所以在后面加上&最为妥当,或者是CLng(100)*360。

(iwgh)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/unsort/vb/2006/0105/484.html]
本文出处: 作者:iwgh
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片