use strict;
use Config;
use Devel::Peek;
die "This configuration of perl not relevant to the issue"
unless $Config{nvsize} == $Config{ivsize};
use Inline C => Config =>
PRE_HEAD => "#ifndef __USE_MINGW_ANSI_STDIO\n#define __USE_MINGW_ANSI_STDIO 1\n#endif\n",
;
use Inline C => <<'EOC';
void foo(SV * in) {
printf("%.20" NVgf, SvNV(in));
printf("\n");
}
EOC
# Create an NV whose value is
# 18446744073709549568
my $nv = ((1 << 53) - 1) / 2 * 4096;
# Dump $nv; # Shows that it's an NV.
foo($nv);
foo(18446744073709549568);
####
18446744073709549568
18446744073709549568
####
18446744073709550000
18446744073709550000