操作应该尝试保持与原始输入相同类型的答案,因此如果持有者以Double开头,那么结果也应该是双倍。
如果输入包含不同数字类型的持有者,那么它应该自动连接等。
应该有一种类型的持有者使用getter将结果返回为整数,double,bigdecimal,big integer等,如果转换失败则抛出异常。
代码应该看起来像Bigdecimal。
理想的不可变
代码不知道或关心持有人内部的操作,操作只是在稍后需要转换之前一直工作。
不幸的是,BigDecimal并不是完全符合我的需要,它缺少许多关键功能,例如:正弦,日志和数学上的大多数静态助手。
ApacheCommonsMath
Axelcb建议使用apache commons数学库。我的主要使用类似乎是DFP。
检查DFP广告管理系统没有简单的方法来传递BigDecimal / BigInteger并构建DFP广告管理系统。如果精确度也是一个参数并且在过程中使用它会很好。
没有任何函数(如multiply)接受具有精度的上下文并且像BigDecimal一样舍入。我真的不明白为了笨重的方式处理精确度和舍入的原因。
什么是DfpField,它究竟是做什么的,为什么DFP中有字段???请不要再告诉我这个日历。
没有方法可以导出到BigDecimal或BigInteger
DFP
这是apache commons math DFP课程的最初灵感来源吗?
缺少从BigDecimal或BigInteger导入的第一个问题。
没有方法可以导出到BigDecimal或BigInteger
答案 0 :(得分:1)
BigDecimal
不是final
。您可以扩展它并将方法(正弦,日志等)添加到子类。
答案 1 :(得分:1)
我知道这些库可能对您有用:
答案 2 :(得分:1)
您可以尝试gnu.math中用于实现完整Scheme“数字塔”的包kawa language framework。包装应该是独立的,独立于kawa的其他部分。
答案 3 :(得分:0)
我认为最好的方法是为BigDecimal编写包装器并实现所有其他选项。