Java的BigDecimal.power(BigDecimal指数):有没有一个Java库呢?

Java的BigDecimal.pow(int)方法只接受一个整数参数,没有BigDecimal参数。

是否有像Apache的commons-lang这样的库,支持BigDecimal.pow(BigDecimal) ? 它应该能够计算出"1.21".pow("0.5")来返回"1.1"

核心math函数有一个Math.BigDecimal实现,可以从这里的康奈尔大学图书馆获得源代码(也可以下载该库作为tar.gz )。 这里是一个图书馆使用的样本:

 import org.nevec.rjm.*; import java.math.BigDecimal; public class test { public static void main(String... args) { BigDecimal a = new BigDecimal("1.21"); BigDecimal b = new BigDecimal("0.5"); System.out.println(BigDecimalMath.pow(a, b).toString()); } } 

打印出来:

 1.1 

更新

信息页面和源代码文件中都没有许可证信息。 描述图书馆工作的公共论文摘要包含“ 完整的源代码可用 ”这一短语,

但是 ,门户arXiv.org (文件和源文件所在的位置)具有以下许可集合 :

arXiv许可证信息

arXiv是一个学术资料库,永久访问是维持学术logging所必需的。 因此,arXiv保持每个提交和更换宣布的永久logging。

arXiv不要求版权转让。 但是,我们需要足够的权利来允许我们永久分发提交的文章。 为了向arXiv提交文章,提交者必须:

  • 授予arXiv.org非排他性和不可撤销的许可证,以分发文章 ,并certificate他们有权授予此许可证,
  • 根据知识共享署名许可或知识共享署名 – 非商业性使用 – 相同方式共享许可 ,保证作品可用,并且他们有权授予此许可,或者
  • certificate该作品属于公有领域(我们将通过将创build共享公有领域声明与提交相关联来存储这些信息)

因此,基本上,任何工作 (如纸和附带的源代码将被合法称为)在arXiv中submited和接受,并没有说明使用知识共享署名 – 非商业性使用 – 相同方式的许可证将公开发表在公共领域, 创意共享署名许可证将被使用。

结论

由于这项工作( 论文和源代码 )并没有声明(事实上它没有声明任何关于许可的),所以使用知识共享署名 – 非商业性使用 – 相同方式许可证,然后基于arXiv许可证信息帮助页面规则,它是根据知识共享署名许可证 ,允许您共享,复制,分发和传输,混音(适应)和商业使用的工作

另外,如果您对授权仍有法律疑问,您可以直接在arXiv.org门户网站上联系作者Richard J. Mathar (您必须在门户网站注册才能完成此操作)

没用过,但看到了suanshu

BigDecimalUtils有一个适合你需要的pow()

 public static java.math.BigDecimal pow(java.math.BigDecimal a, java.math.BigDecimal b) Compute a to the power of b. 

Apfloat库似乎正在这样做,检查API文档 。

 ApcomplexMath.pow(Apcomplex z, Apcomplex w) 

Apcomplex是一个例如BigDecimal的包装类。