http://qs1969.pair.com?node_id=11136997


in reply to Re^4: Padding with sprintf changing number
in thread Padding with sprintf changing number

It probably is not possible to predict the results in every case. Consider these two runs of your function. Only the second replicates your original problem.
use strict; use warnings; no warnings 'experimental::signatures'; use feature 'signatures'; sub amnt($amn) { my $amount=$_[0]; print "$amount i m checking amount before padding,\n"; my $padamnt = sprintf("%016d",$amount); print "$padamnt i m checking amount after padding,\n"; return $padamnt; } print "EXACT integer\n"; amnt(488715); print "\n\nNot quite an integer\n"; amnt(488715 - 4e-10);

OUTPUT:

EXACT integer 488715 i m checking amount before padding, 0000000000488715 i m checking amount after padding, Not quite an integer 488715 i m checking amount before padding, 0000000000488714 i m checking amount after padding,
Bill