我正在尝试将字节流复制到双精度数组中。字节不一定代表双精度值,双精度数组只是用作存储机制(我意识到这很疯狂,但这是对我们框架的当前限制,我们有一个截止日期)。但是我发现,在某些情况下,将双精度数组复制回字节数组时,数据发生了变化。
我已将其缩小到以下测试用例失败
[TestMethod]
public void Test()
{
var bytes = new byte[]
{
24,
108,
6,
14,
7,
91,
242,
255
};
double d = BitConverter.ToDouble(bytes, 0);
var returnedBytes = BitConverter.GetBytes(d);
for (int i = 0; i < returnedBytes.Count(); i++)
{
Assert.AreEqual(bytes[i], returnedBytes[i]);
}
}
我现在意识到有一些底层框架功能阻止我采用这种方法。但是出于兴趣,任何人都可以解释为什么上述测试用例失败了吗?