use warnings; use strict; use Inline C => Config => BUILD_NOISY => 1; use Inline C => <<'EOC'; SV * foo(SV * nv) { double x = (double)SvNV(nv); return newSVnv(x); } EOC print perl_foo(2.5), "\n"; print perl_foo(1.1), "\n"; # LINE 17 sub perl_foo { my $ret = foo($_[0]); if($_[0] - $ret) {warn "Loss of precision"} # LINE 21 return $ret; } #### 2.5 1.1 #### 2.5 Loss of precision at double.pl line 21 1.10000000000000009