Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations SkipVought on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Converting an amount to a 4 byte array 1

Status
Not open for further replies.

zarkon4

MIS
Dec 16, 2003
641
0
0
US
I haven't ever had to deal with this before. I need to convert a sale amount (48.58) to a 4 byte array and use network byte order. The code below is how I am doing it, but it is wrong and I am not understanding why. Can anyone help?

float saleamount = 48.58F;
byte[] data2 = BitConverter.GetBytes(saleamount).Reverse().ToArray();

What I am getting is 66 66 81 236 in the array. I am not certain what it should be though. I am interfacing with a credit card terminal and need to send the amount in "4 bytes, fixed length, max value is 0xffffffff, use network byte order
 
The four bytes with decimal codes 66 66 81 236 (or hexadecimal 42 42 51 ec) are the raw byte values associated with the Real32 representation of the floating point value 48.58.

Your requirement of "4 bytes, fixed length, max value is 0xffffffff, use network byte order" perhaps implies that the amount should be the byte array representation of a long (32-bit) integer; so perhaps your mount multiplied by 100, giving 4858, which would be represented by the bytes with hexadecimal values 00 00 12 fa (decimal values 0 0 18 250).
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top