我编写货币交易应用程序是为了谋生,所以我必须处理货币值(遗憾的是,Java仍然没有decimal float类型,也没有支持任意精度的货币计算)。“使用BigDecimal!”--你可能会说。我知道。但现在我有一些代码,其中性能是的一个问题,而BigDecimal超过1000倍(!)比double
原语慢。
计算非常简单:系统所做的是多次计算a = (1/b) * c
(其中a
、b
和c
是定点数值)。然而,问题出在这个(1/b)
上。我不能用定点算术,因为没有不动点。而且BigDecimal result = a.multiply(BigDecimal.ONE.divide(b).multiply(c)
不仅丑陋,而且运行缓慢。
我可以用什么来替代BigDecimal?我需要至少10倍的性能提升。我发现其他方面都很好的JScience library,它有任意精度的算术,但它甚至比BigDecimal还慢。
有什么建议吗?
https://stackoverflow.com/questions/611732
复制相似问题