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