当 'e' 是非常大的 e 的小数时,如何对 e 求幂?

How to do exponentiation e when 'e' is decimal for very large numbers of e?

说,

base = 2 和 e = 20000.5671

java.

中的上述示例如何执行(基础功率 e)

显然 Math.pow(base, e) 不是要打印的 "Infinity"

BigDecimal 只接受 'e' 类型的 int。

还有其他方法可以实现吗?期待更多 JDK 库而不是 3p。

您可以尝试使用 exponent product rule

ab+c = ab * ac

因此您可以使用 BigDecimal 函数对 2 进行 20000 次方的运算,然后乘以 2 的 0.5671 次方

注:-

这种方法将产生一个答案,该答案仅在其最少部分的精度上是正确的。 Math.pow 函数 returns 是一个双精度数,因此只精确到大约 15 位有效数字。

所以,有一个数学上的解决方法:

BigDecimal.valueOf(2).pow(20000).multiply(BigDecimal.valueOf(Math.pow(2, .5671)))