Reputation: 2866
I am trying to decide which data type shall i use for a financial application.
I have read that Double
or BigDecimal
should be used. And i am confused between them.
Any help in this regard will be highly appreciated
Upvotes: 6
Views: 6091
Reputation: 2939
BigDecimal isn't only best choice, BigDecimal is designed for such case.
Upvotes: 2
Reputation: 5279
For most applications, a simple long
will do: when representing cents, this will handle amounts up to 10^17 {Dollars, Euros, whatever}.
Upvotes: 2
Reputation: 500773
You almost certainly don't want to use floating-point types (double
, float
, Double
, Float
) to handle monetary amounts, especially if you will be performing computations on them. The main reason for this is that there are many simple-looking numbers that cannot be represented exactly as a double
et al. One such number is 0.1
.
BigDecimal
is therefore a much better choice for this use case.
Upvotes: 9
Reputation: 5256
Use BigDecimal, it's a lot better than Double for financial stuff. See here the accepted answer for a similar question: Double vs. BigDecimal?
Upvotes: 2