我用vb写了一段代码,将二进制数据转换为十进制数据,结果出现了-1.#INF。
-1.#INF有什么含义吗?还是我的代码有错误。先贴出来请各位高手们帮忙指正一下啦。
mydata = InputB(LOF(1), 1)
Close #1
'On Error Resume Next
rs3.AddNew
t = Mid(wjm, 2, 2) + "/" + Mid(wjm, 4, 2) + "/" + Mid(wjm, 6, 2) + " " + Mid(wjm, 8, 2) + ":" + Mid(wjm, 10, 2) '获取时间精确到分钟
If IsDate(t) Then
rs3.Fields(0) = CDate(t) '设t0=0 ms
Else
MsgBox ("日期转换错误")
Exit Sub
End If
For g = 1 To 13 ' datalie '列数-1
’调用fudian函数
mydataresult = fudian(mydata(k), mydata(k + 1), mydata(k + 2), mydata(k + 3))
k = k + 4
rs3.Fields(g) = mydataresult
Next
rs3.Update
rs3.Close
’被调用的函数
Public Function fudian(ByVal a0 As Byte, ByVal a1 As Byte, ByVal a2 As Byte, ByVal a3 As Byte)
Dim a(3) As Byte '不应定义为Dim A(4) As Byte,原因为vb的数组下标默认从0开始
Dim Result As Single
a(0) = a0
a(1) = a1
a(2) = a2
a(3) = a3
'先用一个临时数组倒序数组A
Dim B(3) As Byte
Dim I As Long
For I = 0 To 3
B(I) = a(3 - I)
Next
CopyMemory Result, B(0), 4
fudian = Round(Result, 3)
End Function
-1.#INF有什么含义吗?还是我的代码有错误。先贴出来请各位高手们帮忙指正一下啦。
mydata = InputB(LOF(1), 1)
Close #1
'On Error Resume Next
rs3.AddNew
t = Mid(wjm, 2, 2) + "/" + Mid(wjm, 4, 2) + "/" + Mid(wjm, 6, 2) + " " + Mid(wjm, 8, 2) + ":" + Mid(wjm, 10, 2) '获取时间精确到分钟
If IsDate(t) Then
rs3.Fields(0) = CDate(t) '设t0=0 ms
Else
MsgBox ("日期转换错误")
Exit Sub
End If
For g = 1 To 13 ' datalie '列数-1
’调用fudian函数
mydataresult = fudian(mydata(k), mydata(k + 1), mydata(k + 2), mydata(k + 3))
k = k + 4
rs3.Fields(g) = mydataresult
Next
rs3.Update
rs3.Close
’被调用的函数
Public Function fudian(ByVal a0 As Byte, ByVal a1 As Byte, ByVal a2 As Byte, ByVal a3 As Byte)
Dim a(3) As Byte '不应定义为Dim A(4) As Byte,原因为vb的数组下标默认从0开始
Dim Result As Single
a(0) = a0
a(1) = a1
a(2) = a2
a(3) = a3
'先用一个临时数组倒序数组A
Dim B(3) As Byte
Dim I As Long
For I = 0 To 3
B(I) = a(3 - I)
Next
CopyMemory Result, B(0), 4
fudian = Round(Result, 3)
End Function
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货