我们有一个高度复杂的金融模型应用,涉及资金和百分比.它是用C#编写的,我们使用它的decimal
类型来表示两者.它运行得很好,但我们正试图将这款应用程序移植到Java上,以摆脱微软.
令我惊讶的是,没有找到任何Java原生类型来存储金钱和百分比,两者都提供:
- 无损精度
- 本机风格的计算(例如,使用
+
而不是.add()
进行加法)
我知道大家的共识是使用BigDecimal.这解决了存储部分,但使用它进行计算非常麻烦.例如,用decimal
代替这个:
((a + b + c + d) / e) * f
个
如果是BigDecimal
分,我得这么做:
a.add(b).add(c).add(d).divide(e).multiply(f)
个
这对于少量的计算来说是很好的,但我们有数千次计算,他们的一些公式有几十行.这很快就变得笨拙和难以阅读.
基本上,我正在寻找的正是C#的S decimal
类型的Java复制品.