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