我用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