As nobody mentioned this so far, I'll bite on "perl has not and my compiler has" part. Perl by default configures/compiles to "normal" doubles, but it has an option to use long doubles for NV types.
Configure your perl with -Duselongdouble
$ perl -V:uselongdouble\|nvsize
nvsize='16';
uselongdouble='define';
$ perl -MData::Dumper -wE'say Dumper cos 1'
$VAR1 = '0.540302305868139717';
$ perl5.10.1 -V:uselongdouble\|nvsize
nvsize='8';
uselongdouble='undef';
$ perl5.10.1 -MData::Dumper -wE'say Dumper cos 1'
$VAR1 = '0.54030230586814';
$
Enjoy, Have FUN! H.Merijn