Java的BigDecimal.power(BigDecimal指数):是否有Java库可以做到这一点?

时间:2013-05-08 13:16:34

标签: java

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

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

3 个答案:

答案 0 :(得分:30)

康奈尔大学图书馆Math.BigDecimal implementation of core mathematical functions提供了here源代码(您也可以将该图书下载为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

更新

许可证信息现已在2015年5月更新中清除:

  

完整源代码在LGPL v3.0下提供。

答案 1 :(得分:6)

没有使用,但看到suanshu

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

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

答案 2 :(得分:4)

Apfloat库似乎正在这样做,请查看API docs

ApcomplexMath.pow(Apcomplex z, Apcomplex w)

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