在VB.Net中将byte()数组转换为double

时间:2008-10-23 18:26:58

标签: vb.net arrays double decimal byte

我有这种情况。 我有一个真正的存储在sql 2005数据库的varbinary字段中。 由于我无法将varbinary转换为sql 2005中的真实,我试图在vb.net中这样做。

该字段作为byte()数组存储在DataTable中。

现在我想把byte()读成double或decimal变量。 但我对如何做到这一点没有太多线索......

3 个答案:

答案 0 :(得分:2)

这实际上取决于它的存储方式,但BitConverter.ToDouble可能是你的朋友。这是假设它是IEE754格式。你从哪里获得数据?

答案 1 :(得分:1)

我不太了解VB.net,但了解.NET库。

将byte []包装在MemoryStream中并将其包装在BinaryReader中。然后使用BinaryReader.ReadDouble()方法。有关MSDN页面,请参阅herehere

编辑以回复this

您正在寻找一段代码如下:

'declare a test array
Dim testArray As Byte() = {0, 0, 0, 0}
'wrap it into a memory stream
Dim memStream As MemoryStream = new MemoryStream(testArray)
'wrap the stream in a binary reader
Dim bReader As BinaryReader = new BinaryReader(memStream)
'read a 32bit integer from the stream using the reader
Dim count As Integer = bReader.ReadInt32()

答案 2 :(得分:0)

Public Function GetDateFromBytes(ByRef value() As Byte, _
                                    ByRef startindex As Int32) As Date
    'create a aray of Ints
    Dim IntValues() As Int32 = {BitConverter.ToInt32(value, startindex), _
                                    BitConverter.ToInt32(value, (startindex + 7)), _
                                    BitConverter.ToInt32(value, startindex + 15), _
                                     BitConverter.ToInt32(value, startindex + 31)}

    Return Date.FromBinary(New Decimal(IntValues))

End Function