my $a = -95.3009707988281 ; show($a) ; my $b = -95.1877600585938 ; show($b) ; my $x = ($a + $b) / 2 ; show($x) ; printf "%20.16f\n", $x ; sub show { my ($f) = @_ ; printf "%-18s 0x%04X_%04X_%04X_%04X\n", $f, unpack("n4", pack("d>", $f)) ; } ;