一个非常简单但有非常奇怪的问题,谢谢
vb下,语句
dim i as integer
i=255*256
居然提示overflow
于是我将
dim i as integer
改为:
dim i as long
居然还是一样!!
什么原因啊??
问题点数:20、回复次数:3Top
1 楼rainstormmaster(暴风雨 v2.0)回复于 2006-03-04 19:26:09 得分 10
呵呵,比较常见的问题了:
i=255*256
中255和256都可以在integer的取值范围之内,系统会将这两个数都看成integer型变量,其乘积也为integer,而255*256的值又超出了integer的取值范围,所以提示overflow
解决办法:
dim i as long
i=255& * 256&Top
2 楼faysky2(出来混,迟早是要还嘀)回复于 2006-03-04 19:28:45 得分 10
同上
dim i as integer
i=255&* 256
Top
3 楼faysky2(出来混,迟早是要还嘀)回复于 2006-03-04 19:30:30 得分 0
Integer 变量存储为 16位(2 个字节)的数值形式,其范围为 -32,768 到 32,767 之间
上面i的类型定义写错了
dim i as Long
i=255&* 256Top




