Decimal handling for currency (precision)
Andrea Fontana
nospam at example.com
Thu Nov 23 15:01:16 UTC 2017
On Thursday, 23 November 2017 at 14:47:21 UTC, aberba wrote:
> Some suggest working with the lowest currency denomination to
> avoid decimal precision handling and only convert to the
> highest denominations (decimal) when displaying. I've also seen
> some use decimal value handling libraries.
>
> I'm thinking lowest denominations will result in extremely
> large values that D's type system cannot store (if such large
> values makes sense or can happen with money in real life).
>
> What will be your advise on the type to use by default, the
> currency denominations (100p instead of 1.0 dollars), and cost
> of computation.
From d-money doc:
"Here the design decision is to use an integer for the internal
representation. This limits the amounts you can use. For example,
if you decide to use 4 digits behind the comma, the maximum
number is 922,337,203,685,477.5807 or roughly 922 trillion. The
US debt is currently in the trillions, so there are certainly
cases where this representation is not applicable. However, we
can check overflow, so if it happens, you get an exception thrown
and notice it right away. The upside of using an integer is
performance and a deterministic arithmetic all programmers are
familiar with."
922 trillion (+4 digits after comma) should be enough for common
computations.
More information about the Digitalmars-d-learn
mailing list