一个功能更丰富的数字(比 Bigdecimal)持有 java 库

发布于 2024-10-21 06:55:35 字数 1020 浏览 7 评论 0原文

  • 该操作应尝试保持答案与原始输入的类型相同,因此,如果持有者以 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

桃气十足 2024-10-28 06:55:35

您可以尝试使用 gnu.mathkawa 语言框架,用于实现完整的“数字塔”方案。该包应该非常独立并且独立于 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.

黑色毁心梦 2024-10-28 06:55:35

BigDecimal 不是 final。您可以扩展它并向子类添加方法(正弦、对数等)。

BigDecimal is not final. You can extend it and add the methods (sine, log, etc) to the subclass.

樱娆 2024-10-28 06:55:35

我认为最好的方法是为 BigDecimal 编写包装器并实现所有附加选项。

I think the best way is to write wrapper for BigDecimal and implement all your additional options.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文