我需要计算$a^b$
,其中a
是BigInteger
,b
是double
在java中可以这样做吗?
最佳答案
看起来标准 Java 库没有提供任何任意精度计算能力的方法。
如果您确实不需要任意精度并且 double 就足够了,您可以使用 Math.pow(double, double)
。
如果您的指数实际上是整数,您可以尝试 BigInteger.pow(int)
:
BigInteger result = new BigInteger("312413431431431431434314134").pow(5);
如果您确实需要任意精度的幂运算,则必须查看一些库。例如有Apfloat:https://github.com/mtommila/apfloat
你可以这样做:
BigDecimal base = new BigDecimal("12341341341341341341341343414134134");
double exponent = 1.5;
Apfloat apfloatBase = new Apfloat(base);
Apfloat apfloatExponent = new Apfloat(exponent);
Apfloat result = ApfloatMath.pow(apfloatBase, apfloatExponent);
Java文档:http://www.apfloat.org/apfloat_java/docs/org/apfloat/Apfloat.html http://www.apfloat.org/apfloat_java/docs/org/apfloat/ApfloatMath.html
关于java - 如何在java中将double转换为bigInteger,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47369668/