查看: 1097|回复: 4
收起左侧

[软件] VB编程求助

[复制链接]
huangdan811
发表于 2014-4-8 14:51:43 | 显示全部楼层 |阅读模式
VB程序一段中:
Private Sub Command1_Click()
Dim abc As Variant
abc = 400 * 100
Text1.Text = abc
End Sub
在VB里面运行,总是提示数据溢出,把数据类型换位single,double,integer,long都试过了,还是如此,但是将400换成40或40000,却可以正常。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x
guihua7923
发表于 2014-4-8 15:11:56 | 显示全部楼层
本帖最后由 guihua7923 于 2014-4-8 15:14 编辑

楼主在编程时没注意数据的问题当VB中不使用变量,直接使用数字参加运算时,VB 会将整数认为是 Integer 类型而楼主所用的数据已经超过 Integer 类型的范围,所以会出现溢出的错误,可将程序变为:
Private Sub Command1_Click()
abc = 400* 100&
Text1.Text = abc
End Sub
即可
huangdan811
 楼主| 发表于 2014-4-8 15:14:32 | 显示全部楼层
guihua7923 发表于 2014-4-8 15:11
楼主在编程时没注意数据的问题当VB中不使用变量,直接使用数字参加运算时,VB 会将整数认为是 Integer 类型 ...

在请问一下,为什么我将400改为40或4000就可以了,谢谢!
guihua7923
发表于 2014-4-8 15:21:42 | 显示全部楼层
你可以这样理解,当比32767小的时候VB也是将它列为Integer 类型,而大于32767就变为long类型。你在40和40000中变换,用40毋庸置疑是满足Integer 类型的条件的,而用40000已经变为long类型了。从而会出现以上的问题。貌似4000也会溢出的吧。你可以试试。你也可以将40000变为32768和32767来试试看看是否有溢出情况。

评分

参与人数 1经验 +8 收起 理由
woxihuan2011 + 8 感谢支持,欢迎常来: )

查看全部评分

huangdan811
 楼主| 发表于 2014-4-8 15:23:55 | 显示全部楼层
guihua7923 发表于 2014-4-8 15:21
你可以这样理解,当比32767小的时候VB也是将它列为Integer 类型,而大于32767就变为long类型。你在40和4000 ...

的确,400和4000就会出现,非常感谢!
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-5-3 20:07 , Processed in 0.122345 second(s), 18 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表