关于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没超出范围吧?! 展开
如题,上面这句调试时,老是提示溢出,我把它改成i = 255 * 256& + 254就没问题了。
求解释。
我只求解释我上面这个是怎么回事。我定义的i为long型,255 * 256没超出范围吧?! 展开
展开全部
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类型来处理
这样可以么?
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类型来处理
这样可以么?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为VB在做运算i = 255 * 256 + 254 时,默认255、256的数据类型都是Integer。所以运算时会“溢出”(超出了Integer的表示范围)。
改成i = 255& * 256 + 254
也可以的。
改成i = 255& * 256 + 254
也可以的。
追问
那么,能解释下这句吗:i = 255& * 256 + 254
我理解不了,谢谢了,多一个&符号是什么意思呢?
追答
255&的意思就是长整型数255,与整型数256相乘,就转换为较高精度的长整型数256相乘,乘完后与整型数254相加,也是先将其转换为长整型数254,再相加。
&是一个长整型数的类型说明符。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询