我正在尝试决定将哪种数据类型用于金融应用程序。
我已经阅读Double
或BigDecimal
应该使用。我在他们之间感到困惑。在这方面的任何帮助将不胜感激
您几乎肯定不想使用浮点类型 ( double
, float
, Double
, Float
) 来处理货币金额,尤其是当您要对它们执行计算时。造成这种情况的主要原因是有许多看起来很简单的数字不能完全表示为 a double
et al。一个这样的数字是0.1
。
BigDecimal
因此对于这个用例来说是一个更好的选择。
使用 BigDecimal,它在金融方面比 Double 好得多。请参阅此处接受的类似问题的答案: Double vs. BigDecimal?
BigDecimal 不仅是最佳选择,BigDecimal 就是为这种情况而设计的。
对于大多数应用程序,一个简单的方法long
就可以了:当代表美分时,这将处理高达 10^17 {美元、欧元等}的金额。