java - Apache POI Spreadsheets 是否有任何库来处理比 double 更精确的公式的 r/wing?

标签 java apache-commons apache-poi bigdecimal

最初我追求的是比简单的 +-*/功能更多的 BigDecimal,它比 java.lang.Math 上可用的功能少得多。

请不要评论 sin 和产生或需要不适合的无理数的类似函数。该问题的简单答案是使用具有适当/合理精度限制的 MathContext。我最初只选择了 BigDecimal,因为它提供了比 double 更多的精度。

我的一个想法是利用 Apache Poi 库,希望它包含一个有效的 Function 接口(interface),并为电子表格中的所有(也许不是全部,但有很多)函数提供了真正的实现。不幸的是浏览 javadoc 我找不到任何类似命名的接口(interface)/类。

  • 是否有任何其他库可以帮助使用比 double 更精确的东西对 poi excel 单元格进行数学运算?
  • 我能说的最好的就是利用 apache commons 数学?
  • 看来 org.apache.poi.hssf.record.formula.functions.* 中与数字相关的函数仅适用于 double 。

最佳答案

Excel 格式在内部将所有数字存储为 double 型。因此,虽然您可能会计算出更高精度的答案,但如果您将它们存储回 Excel 文件中,您就会失去它。此外,如果您使用 excel 来计算值本身,那么它保存的答案将仅限于 double 。

如果您想使用 POI 进行公式评估,则主要是围绕评估单元格的内容进行设置。一种选择是创建一个单元格,将公式设置到其中然后进行计算。 See the Apache POI eval documentation了解详情。

org.apache.poi.ss.formula.functions 包包含 POI 支持的所有 excel 公式函数实现,但它们对您来说可能有点低级(它们适用于 Ptgs,操作等)

关于java - Apache POI Spreadsheets 是否有任何库来处理比 double 更精确的公式的 r/wing?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5334083/

相关文章:

java - 如何使用apache commons解析xml中的配置文件?

java - JTextArea:限制字符串宽度和行数?

java - 在 Java 中询问公历一天中的小时数

java - 如何在命令行编译使用 Apache Commons IO 的 Java 应用程序

java - 使用 poi 从 Excel 中检索值

java - 从 Excel 导入空日期

java - 使用 Apache POI 在 Excel 中删除多行

java - Android Null Pointer Exception 不确定如何修复

java - 在黑莓中实现 OutboundMessageListener 时出现错误?

android - 错误 : cannot find symbol class StringJoiner in android