Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Re^5: Behaviour of int() unexpected

by LanX (Saint)
on Mar 13, 2025 at 20:25 UTC ( [id://11164295]=note: print w/replies, xml ) Need Help??


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

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11164295]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others scrutinizing the Monastery: (2)
As of 2025-07-11 21:37 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?
    erzuuliAnonymous Monks are no longer allowed to use Super Search, due to an excessive use of this resource by robots.