如题
        我用485读取流量计传回数值  68 73 40 B9 (16进制)
实际流量计上显示为5.794,要如何将上面那16进制转换为
一般正常使用的10进制
厂商给的资料是说明输出格式为 32位元 浮点数
就是要16进制的32位元浮点数,转成可读的10进制
求解

解决方案 »

  1.   

    给你个简单的例子,实际使用还需要自己完善。Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)Public Function StrToSng(ByVal Data As String) As Single
        Dim R(3) As Byte
        On Error GoTo hErr
        Data = Replace(Data, " ", "")
        StrToSng = 0
        R(0) = CByte("&H" & Mid(Data, 3, 2))
        R(1) = CByte("&H" & Mid(Data, 1, 2))
        R(2) = CByte("&H" & Mid(Data, 7, 2))
        R(3) = CByte("&H" & Mid(Data, 5, 2))
        CopyMemory StrToSng, R(0), LenB(StrToSng)
    hErr:
    End Function
    用法:
    Debug.Print StrToSng("687340B9")
     5.794