Vishal.Dhure
Vishal.Dhure

Reputation: 1

How to convert float value to byte in c#

I want to convert 794.328247 value to byte.

I used Convert.ToByte(794.328247) but it showing following error,

Error : - Value was either too large or too small for an unsigned byte.

So anyone can help me to resolve this issue.

Thanks.

Upvotes: 0

Views: 2637

Answers (1)

JonasH
JonasH

Reputation: 36639

You probably want Bitconverter.GetBytes

byte[ ] byteArray = BitConverter.GetBytes( 794.328247);

Note that this produce an array of bytes since a float is 32bit, so it needs 4 bytes to store it. Do the reverse with ToSingle.

The alternative is to truncate the float: var b = (byte) 794.328247;, but this is usually not a good idea since a byte has a far smaller range of values that a float. In some cases you might need to first normalize the input value to some range of values before truncating. I.e. you would remap values from say 750-800 to the 0-255 range.

Upvotes: 0

Related Questions