Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Re^5: Padding with sprintf changing number

by BillKSmith (Monsignor)
on Sep 24, 2021 at 17:11 UTC ( [id://11136997] : note . print w/replies, xml ) Need Help??


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