一个功能更丰富的数字(比 Bigdecimal)持有 java 库
该操作应尝试保持答案与原始输入的类型相同,因此,如果持有者以 Double 开头,则结果也应该是 Double。
如果输入包含不同数字类型的持有者,那么它应该自动加宽等。
应该有一个带有吸气剂的单一类型的持有者以整数、双精度、大十进制、大整数等形式返回结果,如果转换失败则抛出异常。
代码应类似于 Bigdecimal。
理想地不可变
代码不应该知道或关心持有者里面有什么,操作只是工作,直到稍后阶段需要转换。
不幸的是,BigDecimal 并不能真正满足我的需要,它缺少许多关键函数,例如:正弦、对数和数学上的大多数静态助手。
ApacheCommonsMath
Axelcb 提出了使用 apache commons 数学库的建议。在我的例子中,主要的使用类别似乎是 DFP。
检查 DFP 广告管理系统时,没有简单的方法可以传递 BigDecimal/BigInteger 并构建 DFP 广告管理系统。如果精度也能成为一个参数并在吸入过程中使用,那就太好了。
没有一个函数(如乘法)像 BigDecimal 一样接受带精度和舍入的上下文。我真的不明白处理精度和舍入的笨拙方式的原因。
什么是 DfpField,它的具体用途是什么以及为什么 DFP 广告管理系统中存在字段???请不要再告诉我这个日历。
没有方法可以导出到 BigDecimal 或 BigInteger
dfp
这是 apache commons math DFP 的最初灵感类?
缺乏关于从 BigDecimal 或 BigInteger 导入的第一个关注点。
没有方法可以导出到 BigDecimal 或 BigInteger
The operation should try and keep the answer of the same type as the original inputs, thus if the holder started of with a Double then the result should also be a double.
If inputs contain holders of different number types then it should auto widden etc.
There should be a single type of Holder with getters to return the result as an integer, double, bigdecimal, big integer etc with exceptions thrown if conversion fails.
Code should look like Bigdecimal.
Ideally immutable
Code shouldnt know or care whats inside the holder, operations just work until conversion is needed at a later stage.
Unfortunately BigDecimal is not really complete for my needs its missing many key functions eg: sine, log and most of the static helpers on Math.
ApacheCommonsMath
Axelcb made a suggestion to use the apache commons math library. The main class of use in my case seem to be DFP.
Examining DFP there is no simple way to pass a BigDecimal/BigInteger and build a DFP. It would be nice if precision would also be a parameter and used during the suck in process.
none of the functions (like multiply) accept a context w/ a precision and rounding just like BigDecimal. I really dont understand the reasoning for the clunky way precisions and rounding are handled.
What is a DfpField, what exactly does it do and why are there fields in a DFP ??? Please dont tell me this Calendar again.
there are no methods to export to a BigDecimal or BigInteger
dfp
is this the original inspiration for apache commons math DFP class ?
the first concern about import from a BigDecimal or BigInteger is lacking.
there are no methods to export to a BigDecimal or BigInteger
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您可以尝试使用 gnu.math 包kawa 语言框架,用于实现完整的“数字塔”方案。该包应该非常独立并且独立于 kawa 的其余部分。
You might try the package gnu.math from the kawa language framework which is used to implement the full Scheme "numeric tower". The package should be pretty self-contained and independent from the rest of kawa.
BigDecimal
不是final
。您可以扩展它并向子类添加方法(正弦、对数等)。BigDecimal
is notfinal
. You can extend it and add the methods (sine, log, etc) to the subclass.我知道这些库可能对您有用:
I know these libraries which may be usable for you:
我认为最好的方法是为 BigDecimal 编写包装器并实现所有附加选项。
I think the best way is to write wrapper for BigDecimal and implement all your additional options.