我正在尝试对我们在 JAVA+SQL 中的精确计算选项建立一些简明的概述。到目前为止,我找到了以下选项:
- 使用双打接受他们的缺点,不行。
- 使用 BigDecimals
- 在复杂的公式中使用它们对我来说是有问题的
- 使用 String.format/Decimal.format 舍入双精度数
- 我需要对公式中的每个变量进行四舍五入还是只获得 BigDecimal 精度?
- 如何调整?
- 在 SQL 中使用计算字段选项。
- 缺点是我需要动态 SQL 从不同的表中提取数据 + 计算其他计算字段上的字段,这会变得混乱
还有其他选择吗?
问题陈述:我需要精确的财务计算,这将涉及使用非常大(十亿)和非常小的数字(0.0000004321),并且还划分彼此非常相似的值,所以我肯定需要 BigDecimal 的精度。
另一方面,我想保留双精度在函数中的易用性(我处理来自十进制 SQL 数据的数组),因此计算如下:(a[i] - b[i])/b[i] 等。等在其他计算中进一步使用。我希望用户能够根据需要设计自己的公式(使用常见的数学语句)
我热衷于对 String.format 使用“格式化”解决方案,但这使得代码的可读性不太好(对每个变量使用 String.format()...)。
非常感谢关于如何处理这些东西的建议。