我正在研究一个金融系统,它的精确性仅为小数点6位。我们目前正在使用R,但转换为Java。我与一位同事就是否应该使用BigDecimals还是使用Java的double / float原语进行了辩论。我赞成BigDecimal,但他的观点是R将使用与Java原语相同的原语,因此我们已经注意到,如果在精确度方面存在任何问题。应该注意的是,最终的结果,我们将转换为BigDecimal,无论如何,这只是计算本身。这里谁是对的?
发布于 2022-02-11 17:22:00
您绝对应该在小数点128中使用BigDecimal。您应该知道规范将来可能会发生变化,并且可能需要更多的小数点。十进制128是太多的解决方案,但它是防弹的。
性能是重要的,但当涉及到金钱时,准确性要重要得多。
发布于 2022-02-11 17:22:14
准确性
会计师想要准确,他们不关心执行的速度。为了记帐目的,请始终在Java中使用BigDecimal
。
另一种方法是使用整数。如果您想表示美元上的便士(美元),乘以100,然后再用这个整数进行进一步的计算。BigInteger
可能会有帮助。
速度
https://stackoverflow.com/questions/71083951
复制相似问题