This is PerlMonks "Mobile"

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


in reply to perl floating number addition

Rule of Thumb:

To calculate dollars "accurately" with 2 decimal places, you need
to calculate right from the beginning in cents as integers!

So just calculate with integers in the desired accuracy and shift the decimal point afterwards²!

Background:

Floats are not accurate with decimal fractions because the computer "has only two fingers".

Experiment

Just try to express 1/3 accurately in decimal system!

And now imagine you're an alien with 3 fingers 4 and you have only computers that calculate in decimal fractions¹... wouldn't this annoy you, too?

Conclusion

Humans have too many fingers! Downsizing³ to octal system would do it...

Cheers Rolf

Footnotes:

Replies are listed 'Best First'.
Re^2: perl floating number addition
by ig (Vicar) on Jul 18, 2009 at 15:27 UTC

    Many modern processors also have support for Binary Coded Decimal (BCD) calculations, including Pentium, Itanium, PA-RISC, IBM mainframes and others. These capabilities can be used with assembly code programming or use of appropriate libraries. Standardization of decimal arithmetic was added to the new IEEE 754 2008 standard.

Re^2: perl floating number addition
by spx2 (Deacon) on Jul 18, 2009 at 17:42 UTC
    So just calculate with integers in the desired accuracy and shift the decimal point afterwards²!

    I agree , that's what I'd do also