Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?

Re^2: what did I just see..?

by LanX (Saint)
on Mar 22, 2021 at 01:06 UTC ( [id://11130061]=note: print w/replies, xml ) Need Help??

in reply to Re: what did I just see..?
in thread what did I just see..?

> In practice, floating-point errors are seldom a problem

Sorry, I must disagree.

I know of a case where fiscal authorities rejected a calculation because it was 1 cent off. Which led to a missed deadline and penalty payments, IIRC.

If you need cent accuracy then calculate in cents. Never floats!

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

PS: And if you do accounting, inform yourself about the required precision and rounding rules.

Replies are listed 'Best First'.
Re^3: what did I just see..?
by Your Mother (Archbishop) on Mar 22, 2021 at 01:24 UTC

    I got a threatening letter from American Express for my corporate card—which I hadn’t used in a full year—telling me to pay up on my outstanding balance or else! The amount I owed: $0.00. :P

      I knew a man with the same problem. He solved it with a check for $0.00. I do not think it was cashed.

      I now have a brand new understanding of the term "nickel and dime-ing" ;)


      I hope you learned the lesson and payed your debts.

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

Re^3: what did I just see..?
by BillKSmith (Monsignor) on Mar 22, 2021 at 03:17 UTC
    All your suggestions are true. My word 'seldom' probably does not apply to financial calculations. It may not be possible to exactly duplicate the calculations on the statement you receive from your financial institution. The printed decimal numbers on that statement are not exactly the same as the binary numbers in the bank's computer. It simply is not possible to recover every bit of those numbers. Any calculation that you do is flawed to start with. I have noticed that even Quicken's calculation of price/share never exactly agrees with my statement.
      Financial calculations can be quite hairy AFAIK,

      And for very good reasons.

      They have special rounding rules and fixed precision like a tenth or hundreth of a cent.


      1 Euro = 1.95583 Deutsch Mark

      But it's all integer in nature.

      And bank rules may not be fiscal rules.

      The only way I can think of to handle such systems transparently in Perl is using objects with overloaded operators. (With internal integers)

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

Log In?

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

How do I use this?Last hourOther CB clients
Other Users?
Others learning in the Monastery: (3)
As of 2024-04-25 10:08 GMT
Find Nodes?
    Voting Booth?

    No recent polls found