我应该使用哪种数据类型来处理 ERP:Java 中的 BigDecimal 或 Double?

问题描述 投票:0回答:1

我目前正在开发 ERP(企业资源规划)系统,需要就用于处理应用程序中的计算和其他数值的数据类型做出决策。

我知道Java提供了几种处理十进制数的选项,例如BigDecimal和Double。我知道每种方法都有自己的优点和缺点,但我想确保选择最合适的一种来保持系统的精度和效率。

以下是我需要应用计算的一些特定上下文:

  • 账单和付款:处理价格、税收、折扣等
  • 工资和会计:
  • 库存管理:包括单价和产品成本。

我倾向于使用 BigDecimal 进行金融操作,因为它提供的精度,但我担心它对性能的影响。另一方面,Double 在速度方面可能更高效,但可能会引入舍入误差。

对于在 ERP 中处理这些案例,您有什么建议?在什么情况下最好使用 BigDecimal,什么情况下最好使用 Double?我应该遵循什么模式或最佳实践吗?

java double bigdecimal
1个回答
0
投票

各种与金钱相关的计算,不使用

BigDecimal
就大意了。请使用
BigDecimal
进行所有计算。

如果不这样做会怎样?在执行任何类型的数学运算时,

Double
的不准确精度可能会导致完全错误的结果。错误的结果可能会让您的公司付出金钱、信誉和时间来纠正错误的计算。

性能很可能不是问题。仅在性能问题出现时才解决它们,并且不对不存在的问题进行预先优化。

© www.soinside.com 2019 - 2024. All rights reserved.