0x1.921fb54442d18p+1 => 3.1415926535897931
0x1.1a62633145c07p-53 => 1.2246467991473532e-16
####
0x1.921fb54442d18p+1 => 3.14159265358979311599796346854419
0x1.1a62633145c07p-53 => 1.2246467991473532071737640294584e-16
####
use Math::BigFloat;;
$n = Math::BigFloat->new( '3.1415926535897932384626433832795' );;
$d = 0 + $n->bstr;;
printf "%.17f\n", $d;;
printf "%a\n", $d;;
$bfd = Math::BigFloat->new( sprintf "%.17f", $d );;
print $bfd;;
$n -= $bfd;;
print $n;;
printf "%a\n", $n;;
####
3.14159265358979310
0x1.921fb54442d18p+1
3.1415926535897931
0.0000000000000001384626433832795
0x1.3f45eb146ba31p-53