请高手给我看个两句的VB程序

来源:百度知道 编辑:UC知道 时间:2024/05/30 22:16:47
dim x as single
x=1000*1000

就是上面这个程序,当我运行时,它提示说溢出了.single型值的有效范围不是很大吗?好像是到3.4e38吧,怎么会说overflow呢?
如我不想把x变成其它类型的,请高手指点一下怎么办?
但实际上是这样的,当i=1000时就会溢出,biaozhun(i)的值不超赤10.
e = (i - 1) * (i - 1) * biaozhun(i - 1) + i * i * biaozhun(i) + (i + 1) * (i + 1) * biaozhun(i + 1)

其中我把e,i,及数组biaozhun(1000)里面的数都定义成single型的

这个问题是这样的:
vb把两个1000当作整形变量来处理了,两个整形变量相乘得到一个整形值,然后再赋值。整形变量的范围:-32768~32767,所以会溢出。
这样就不会溢出了:
dim x as single
dim a as single
dim b as single
a=1000
b=1000
x=a*b

使用转换函数:
dim x as single
x=csng(1000*1000)
好像是这个。

不过记录这种长整的最好用长整型
dim x as long
x=csng(1000*1000)
这样就不会错了