The number stored in $amount is likely to be something like 488714.9999999999 instead of 488715, and since Perl is unlikely to simply upconvert an integer of that size to a floating-point number on its own, it's likely that you're doing some kind of floating-point operations on the number that you haven't shown us. See What Every Programmer Should Know About Floating-Point Arithmetic.

The Perl Cookbook says "When Perl is told to print a floating-point number but not told the precision, it automatically rounds that number to however many decimal digits of precision that your machine supports." If you don't mind the performance hit, you could use bignum for precise calculations. If you don't mind the imprecision (which would not be advisable if this "amount" has anything to do with money), you could use the %016.0f as suggested by choroba. (Update: If all of the calculations you're doing deal only with integers, and in particular if you're ok with integer division, you could also consider integer. Update 2: The reply indicates that this is not an option in this case.)


In reply to Re: Padding with sprintf changing number by haukex
in thread Padding with sprintf changing number by sachin raj aryan

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.