将Byte []转换为Double

时间:2014-01-12 06:27:47

标签: c#

我有一个字节[8],实际上是一个序号。它来自数据库中的RowVersion。

我真的只关心8字节数组的最后4个字节。

我正在尝试这样做:

 Version = BitConverter.ToDouble(t.Version,4)

'版本'是双倍的。但是,我得到一个错误说:

  

目标数组不够长,无法复制中的所有项目   采集。检查数组索引和长度。

我的'版本'的价值是:

  

[0] 0 [1] 0 [2] 0 [3] 0 [4] 0 [5] 0 [6] 12 [7] 102

我做错了什么?

2 个答案:

答案 0 :(得分:5)

double requires 8 bytes,因此您应该只从整个byte[]获得一个:

BitConverter.ToDouble(input, 0);

返回

3.7179659497173697E+183

更新

但是因为您说它是rowversion值,您应该将其转换为long而不是double

BitConverter.ToInt64(input, 0);

返回

7353252291589177344

答案 1 :(得分:0)

使用此代码:

double[] array= bytearray.Select(i => (double)i).ToArray();

更新

BitConverter.ToDouble(yournumber, 0);