Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Re^5: Integers sometimes turn into Reals after substraction (printed accuracy and float subtraction)

by LanX (Saint)
on May 14, 2016 at 13:42 UTC ( [id://1163031]=note: print w/replies, xml ) Need Help??


in reply to Re^4: Integers sometimes turn into Reals after substraction (printed accuracy and float subtraction)
in thread Integers sometimes turn into Reals after substraction

don't know much about perlguts, but

> If the math never used anything but all integer values, then this output precision issue doesn't appear?

Yes!

(well you could still knock at integer limits and need to resort to bigint, but that's another problem)

This phenomenon already caused much sorrow in financial calculations where cents where inaccurate, and fiscal authorities can be very nasty (or nazi) about inaccurate cents.

The rule of thumb is, if you want n decimal points accuracy, do a n points left shift before starting and an n point right shift of the results.

Roughly speaking: If you need accurate cents, calculate in cents and only convert the result into dollars. (I'd do 1/100th cents to be sure)

Like this all relevant problems between decimal and binary calculations will stay beyond error margin.

Nota Bene: This won't solve the problem of error propagation if you are doing loads of calculations, but financial businesses normally define explicit rounding rules to normalize this.

Cheers Rolf
(addicted to the Perl Programming Language and ☆☆☆☆ :)
Je suis Charlie!

  • Comment on Re^5: Integers sometimes turn into Reals after substraction (printed accuracy and float subtraction)

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others musing on the Monastery: (3)
As of 2024-04-24 18:11 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found