参考如下代码:
static void Float2Byte()
{
float[] _managed_data = new float[2];
_managed_data[0] = 888.1111f;
_managed_data[1] = 888.133f;
GCHandle unmanaged_data_handle = GCHandle.Alloc(_managed_data, GCHandleType.Pinned);
var ptr = unmanaged_data_handle.AddrOfPinnedObject();
int length = _managed_data.Length* sizeof(float);
byte[] bData = new byte[length];
Marshal.Copy(ptr, bData, 0, length);
unmanaged_data_handle.Free();
}
验证如下:内存的数据一样大