in reply to Re^4: Behaviour of int() unexpected
in thread Behaviour of int() unexpected

> It's also quite useful when dealing with financial data

Financial data, like banks, tax authorities, etc have fixed rules about precision and rounding to avoid ambiguity. And these date back to integer times.

You can just calculate in integer if you use cents or the required fractions of them and respect the rounding rules.

IOW instead of calculating with a float 5,02€ you calculate with 502¢ or 5020 deci-cents.

You only need to "shift" the point once you're putting out the result (best string wise)

I haven't seen a case yet where this didn't work.

Cheers Rolf
(addicted to the Perl Programming Language :)
see Wikisyntax for the Monastery

Replies are listed 'Best First'.
Re^6: Behaviour of int() unexpected
by cavac (Prior) on Mar 14, 2025 at 07:36 UTC

    I fully agree, that's how my own software does it. Let me re-formulate my answer: Quite a few prominent early computer systems (like the IBM/360 and the VAX) had support for BCD math. Since those were designed by quite smart engineers, i assumed that this had some advantages.

    BTW, the 6502 processor also has a decimal mode. I've watched a video by Ben Eater where he explains how to convert a binary number into a decimal for displaying it, and it is quite an intense process. For things like displaying a game score, it might work out that using decimal/BCD mode for the score could save some CPU cycles. But i'm in no way an expert on this.

    PerlMonks XP is useless? Not anymore: XPD - Do more with your PerlMonks XP
    Also check out my sisters artwork and my weekly webcomics