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) |