How to convert float to uint by float representation?
c#, data-conversion, floating-point, integer
Solution
You can use the `BitConverter` class:
uint value = BitConverter.ToUInt32(BitConverter.GetBytes(44.54321F), 0);
Console.WriteLine("{0:x}", value); // 42322c3f
You could also do this more directly using an `unsafe` context:
float floatVal = 44.54321F;
uint value;
unsafe {
value = *((uint*)(&floatVal));
}
Console.WriteLine("{0:x}", value); // 42322c3f
However, I'd strongly recommend avoiding this. See Should you use pointers (unsafe code) in C#?
Problem
In C I will do this to convert float representation of number into DWORD. Take the value from the address and cast the content to DWORD. ``` dwordVal = *(DWORD*)&floatVal; ``` So for example `44.54321` will become `0x42322C3F`. How can I do the same in `C#`?