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