最初我在BigDecimal之后使用的功能比简单的+ - * /更多,这远远小于java.lang.Math上可用的功能。
请不要评论罪和类似的功能产生或要求不合理的数字。这个问题的简单答案是使用具有适当/合理精度限制的MathContext。我最初只选择了BigDecimal,因为它提供了更多的精度数字,可以加倍。
我的一个想法是利用Apache Poi库,希望它包含一个工作的Function接口,它可以为电子表格中的所有功能(可能不是全部)提供真正的实现。不幸的是,浏览javadoc我找不到任何类似命名的接口/类。
答案 0 :(得分:1)
答案 1 :(得分:1)
excel格式在内部将所有数字存储为double。因此,虽然您可以计算出更高精度的答案,但如果将它们存储回excel文件中,则会松开它。另外,如果你有擅长计算值本身,那么它保存的答案将限制为双精度。
如果您想使用POI进行公式评估,那么主要是围绕评估单元格的内容进行设置。一种选择是创建一个单元格,将公式设置为单元格然后进行评估。 See the Apache POI eval documentation了解详情。
org.apache.poi.ss.formula.functions
包中包含POI支持的所有excel公式函数实现,但它们可能对您来说有点低级(它们适用于Ptgs,Ops等)