In addition to the above answers, note that some "simple" decimal floats cannot be represented by binary floats, which are used by most languages, including perl. You should always expect some small errors that you can usually work around by using sprintf("%xx.xxf"):

http://support.microsoft.com/kb/q42980/
http://www-106.ibm.com/developerworks/java/library/j-jtp0114/
edit: and perldoc -q decimal

Updated for clarity, this part added:

Usually, the standard float -> string conversion as used by print() handles these inaccuracies fairly well, but printf("%d") does a "hard" truncate, as you can see here:

> perl -e 'print (8.78 * 100 ) 878 > perl -e 'printf("%d", (8.78 * 100 ))' 877
This is documented in perlnumber, but the implications can be hard to predict (and hard to debug, since what is printed is not necissarily the same as what is in the number).


In reply to Re: [s]printf %d oddity by Joost
in thread [s]printf %d oddity by sscecina

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.