Search code examples
c#bitconverter

Byte array to float


I am trying to cast a float into a byte array of length 4, and then back again. But I it doesn's seems to work.

Here's what I've done:

byte[] b = BitConverter.GetBytes(90);
float fb = BitConverter.ToSingle(b, 0);

I expected fb = 90, but it's 1.26E-43.

I know that my converter is little endian, so I've also tried to reverse the array, like this:

byte[] b = BitConverter.GetBytes(90);
Array.Reverse(b);
float fb = BitConverter.ToSingle(b, 0);

Then I got the answer fb = 9.0E+15.

Any ideas? Thanks in advance!


Solution

  • BitConverter.GetBytes(90); will give you the bytes for the integer value of 90. Since you want the bytes for the float value, you need to specify that:

    BitConverter.GetBytes((float)90.0);
    

    or

    BitConverter.GetBytes(90.0f);