バイト ストリームを double 配列にコピーしようとしています。バイトは必ずしも double 値を表すとは限りません。double 配列はストレージ メカニズムとして使用されているだけです (これはおかしいと思いますが、これはフレームワークの現在の制限であり、期限があります)。ただし、状況によっては、二重配列をバイト配列にコピーし直すときにデータが変更されていることがわかりました。
次のテストケースの失敗に絞り込みました
[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]);
}
}
このアプローチをとることを妨げている基礎となるフレームワーク機能がいくつかあることに気づきました。しかし、興味深いことに、上記のテストケースが失敗する理由を誰でも説明できますか?