当e很大时,如果e为十进制,该如何求幂e?

时间:2019-11-06 09:39:20

标签: java bigdecimal exponential

base = 2和e = 20000.5671

如何在Java中执行上述示例的(基本幂e)。

显然,Math.pow(base,e)并非可行,因为它打印的是“ Infinity”

并且BigDecimal仅接受int类型的'e'。

还有其他方法可以做到这一点吗?期望更多的是JDK库,而不是3p。

2 个答案:

答案 0 :(得分:7)

您可以尝试使用exponent product rule

a b + c = a b * a c

因此您可以使用BigDecimal函数将2乘以20000的幂,然后乘以2乘以0.5671的幂。

注意:-

此方法将产生一个答案,该答案仅对于其最少部分的精度才是正确的。 Math.pow函数返回一个双精度值,因此只能精确到约15个有效数字。

答案 1 :(得分:1)

因此,有一个数学解决方法:

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