关于VB 实时错误6:溢出

DimiAsLong:i=255*256+254如题,上面这句调试时,老是提示溢出,我把它改成i=255*256&+254就没问题了。求解释。我只求解释我上面这个是怎么回... Dim i As Long:i = 255 * 256 + 254
如题,上面这句调试时,老是提示溢出,我把它改成i = 255 * 256& + 254就没问题了。
求解释。
我只求解释我上面这个是怎么回事。我定义的i为long型,255 * 256没超出范围吧?!
展开
 我来答
猥琐哥4Qe
2014-08-30 · 超过56用户采纳过TA的回答
知道答主
回答量:106
采纳率:0%
帮助的人:134万
展开全部
yc = 32 * 10000 * 10000 * 2000 * (1 + 1.01972 * 10 ^ (-8) * 91230)
32是整型 之后运算的结果远超于整型数据能表达的范围 所以溢出错误
第二个也是一样
如果你改成
dim a as double
a=32
yc =a * 10000 * 10000 * 2000 * (1 + 1.01972 * 10 ^ (-8) * 91230)
就不会有问题了
或者 yc = 32# * 10000 * 10000 * 2000 * (1 + 1.01972 * 10 ^ (-8) * 91230)
用隐式申明将32作为double类型来处理
这样可以么?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
听不清啊
高粉答主

推荐于2018-04-12 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部
因为VB在做运算i = 255 * 256 + 254 时,默认255、256的数据类型都是Integer。所以运算时会“溢出”(超出了Integer的表示范围)。

改成i = 255& * 256 + 254

也可以的。
追问
那么,能解释下这句吗:i = 255& * 256 + 254

我理解不了,谢谢了,多一个&符号是什么意思呢?
追答
255&的意思就是长整型数255,与整型数256相乘,就转换为较高精度的长整型数256相乘,乘完后与整型数254相加,也是先将其转换为长整型数254,再相加。
&是一个长整型数的类型说明符。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式