in reply to Convert binary to decimal problem

0x007102 = 100.000000 0x00350C = 500.000000

0x0C3500 = 0x027100 * 5, so the byte order is reversed.

0x027100 = 160000, so maybe packed = 1600 * unpacked?

0x300515 / 1600 =? 860.99 Yes!

Solution:

my $raw = 0x300515; my $val = unpack('N', "\x00".pack('V', $raw))/1600
or
my $raw = "\x30\x05\x15"; my $val = unpack('V', "$raw\x00")/1600;