Which data type to use for manipulating currency

2019-06-20 04:36发布

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

标签: java currency
4条回答
冷血范
2楼-- · 2019-06-20 04:42

BigDecimal isn't only best choice, BigDecimal is designed for such case.

查看更多
混吃等死
3楼-- · 2019-06-20 04:51

Use BigDecimal, it's a lot better than Double for financial stuff. See here the accepted answer for a similar question: Double vs. BigDecimal?

查看更多
Luminary・发光体
4楼-- · 2019-06-20 05:05

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.

查看更多
爷、活的狠高调
5楼-- · 2019-06-20 05:06

For most applications, a simple long will do: when representing cents, this will handle amounts up to 10^17 {Dollars, Euros, whatever}.

查看更多
登录 后发表回答