manzur said:
iam writing code for some banking applications which demand accuracy
in money
values.For money values iam using Bigdecimal. If i convert my
bigdecimal to double i fear of inaccuracy(In cases where i deal with
huge values greater than double)
You won't be dealing with values greater than double, because the
maximum double is bigger than 10^308. That is more than the probable
number of atoms in the observable universe.
However, it is entirely possible that you could get a wrong answer for
the least significant digit on large sums of money. Double is just about
precise enough to get the cents digit right on the US national debt in
dollars. If that is good enough, one solution might be to use double for
the exponentiation, but immediately convert back to BigDecimal. That
would avoid accumulating rounding errors during routine addition and
subtraction.
I'm a bit surprised by the use of exponentiation in this precise an
environment. For example, I would have expected compound interest to be
done a compounding period at a time, with the interest for each period
rounded according to fixed rules, then added to the balance.
Patricia