VB运行中变量到5这个位置就丢失变量,这是为什么?
来源:百度知道 编辑:UC知道 时间:2024/07/05 05:10:44
程序如下:
Dim zuigaogaodu As Single
Dim a() As Single
Dim b() As Single
zuigaogaodu = Adodc1.Recordset.Fields("液位仪实时高度").Value
ReDim a(0.1 To zuigaogaodu) As Single
ReDim b(0.1 To zuigaogaodu) As Single
中间计算a(i)的过程省略
Dim k As Single
k = 0.1
Do While (k <= zuigaogaodu)
Dim u As Integer
u = Round(k * 10, 0)
k = u / 10
b(k) = b(k - 0.1) + a(k)
Debug.Print k, a(k), b(k)
k = k + 0.1
Loop
得到的即时数据如下:
.1 .4962779 .4962779
.2 .4962779 .9925559
.3 .4962779 1.488834
.4 .4962779 1.985112
.5 .4962779 2.48139
.6 .4962779 .4962779 注意此行
.7 .4962779 .9925559
.8 .4962779
Dim zuigaogaodu As Single
Dim a() As Single
Dim b() As Single
zuigaogaodu = Adodc1.Recordset.Fields("液位仪实时高度").Value
ReDim a(0.1 To zuigaogaodu) As Single
ReDim b(0.1 To zuigaogaodu) As Single
中间计算a(i)的过程省略
Dim k As Single
k = 0.1
Do While (k <= zuigaogaodu)
Dim u As Integer
u = Round(k * 10, 0)
k = u / 10
b(k) = b(k - 0.1) + a(k)
Debug.Print k, a(k), b(k)
k = k + 0.1
Loop
得到的即时数据如下:
.1 .4962779 .4962779
.2 .4962779 .9925559
.3 .4962779 1.488834
.4 .4962779 1.985112
.5 .4962779 2.48139
.6 .4962779 .4962779 注意此行
.7 .4962779 .9925559
.8 .4962779
你用的VB应该不是VB6,数组的定义和VB6不一样,所以也说不明白有什么不同,不过你可以考虑从以下两个方面改一下试试:
1、不用Round函数,因为有的时候VB中的四舍五入很奇怪,和我们认为的四舍五入不一样。
2、定义数组时改成传统的以整型数定义上下界的,这样处理数据时也许会麻烦一点,但应该会减少有这种莫名其妙的错误。
用Currency类型即可
Dim k As Currency
另以下代码多余
Dim u As Integer
u = Round(k * 10, 0)
k = u / 10
楼上说的很好 定义数组应该用整型
至少你也不要用浮点型
VB中的四舍五入(其实所有的编程语言里)
大都是用的西方的叫四舍六入五成双的方法
虽然很科学但不适合中国“国情”
没办法这些软件都不是中国人编的