我有一个byte [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


我究竟做错了什么?

最佳答案

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

BitConverter.ToDouble(input, 0);


退货

3.7179659497173697E+183


更新资料

但是因为您说的是一个rowversion值,所以应该将其转换为long而不是double

BitConverter.ToInt64(input, 0);


退货

7353252291589177344

10-04 10:09