java - 如何在java中将double转换为bigInteger

标签 java biginteger

我需要计算$a^b$,其中aBigIntegerbdouble 在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/

相关文章:

c# - 对 BigIntegers 列表求和

java - 如何从 JPBC 库中的 String 实例化 Element?

java - BigInteger 负值

java - BigInteger 对我的号码来说很小

php: int() 函数等效于 bigint 类型? (int() 将字符串剪切为 2147483647)

java - HomeFragment 无法转换为 Fragment

java - 项目编译需要一个没有在任何地方使用的类

Java ArrayList.remove() 不工作?

java - 在通过通知开始另一项 Activity 之前完成一项 Activity

java - 如何解决 "Reached the maximum number of URI tags for http.client.requests"警告?