我目前正在开发 ERP(企业资源规划)系统,需要就用于处理应用程序中的计算和其他数值的数据类型做出决策。
我知道Java提供了几种处理十进制数的选项,例如BigDecimal和Double。我知道每种方法都有自己的优点和缺点,但我想确保选择最合适的一种来保持系统的精度和效率。
以下是我需要应用计算的一些特定上下文:
我倾向于使用 BigDecimal 进行金融操作,因为它提供的精度,但我担心它对性能的影响。另一方面,Double 在速度方面可能更高效,但可能会引入舍入误差。
对于在 ERP 中处理这些案例,您有什么建议?在什么情况下最好使用 BigDecimal,什么情况下最好使用 Double?我应该遵循什么模式或最佳实践吗?
各种与金钱相关的计算,不使用
BigDecimal
就大意了。请使用 BigDecimal
进行所有计算。
如果不这样做会怎样?在执行任何类型的数学运算时,
Double
的不准确精度可能会导致完全错误的结果。错误的结果可能会让您的公司付出金钱、信誉和时间来纠正错误的计算。
性能很可能不是问题。仅在性能问题出现时才解决它们,并且不对不存在的问题进行预先优化。