Java 在计算之前,请确定指数是否高于长阈值

Java 在计算之前,请确定指数是否高于长阈值,java,math,pow,jexl,Java,Math,Pow,Jexl,我用数学库和喷气发动机来计算不同的方程式。在这个等式中,我还有pow函数。问题是,当我有大量的数字时,比如math.pow(9999910000),jexl会尝试对其进行评估,这需要大量的时间和CPU使用。如果溶液超过最大长度值,则不应进行评估。在评估功率之前,有没有办法确定它是否大于最大长度?您可以试试 static final BigInteger BigLongMax = BigInteger.valueOf(Long.MAX_VALUE); ... BigInteger.valueOf(

我用数学库和喷气发动机来计算不同的方程式。在这个等式中,我还有
pow
函数。问题是,当我有大量的数字时,比如
math.pow(9999910000)
,jexl会尝试对其进行评估,这需要大量的时间和CPU使用。如果溶液超过最大长度值,则不应进行评估。在评估功率之前,有没有办法确定它是否大于最大长度?

您可以试试

static final BigInteger BigLongMax = BigInteger.valueOf(Long.MAX_VALUE);
...
BigInteger.valueOf(99999).pow(10000).compareTo(BigLongMax);
你可以试试

static final BigInteger BigLongMax = BigInteger.valueOf(Long.MAX_VALUE);
...
BigInteger.valueOf(99999).pow(10000).compareTo(BigLongMax);
你可以试试

static final BigInteger BigLongMax = BigInteger.valueOf(Long.MAX_VALUE);
...
BigInteger.valueOf(99999).pow(10000).compareTo(BigLongMax);
你可以试试

static final BigInteger BigLongMax = BigInteger.valueOf(Long.MAX_VALUE);
...
BigInteger.valueOf(99999).pow(10000).compareTo(BigLongMax);

您可以将指数与

double base = 99999;
double maxExp = Math.log(Long.MAX_VALUE)/Math.log(base);

如果幂高于maxExp,则会出现溢出。

您可以将指数与

double base = 99999;
double maxExp = Math.log(Long.MAX_VALUE)/Math.log(base);

如果幂高于maxExp,则会出现溢出。

您可以将指数与

double base = 99999;
double maxExp = Math.log(Long.MAX_VALUE)/Math.log(base);

如果幂高于maxExp,则会出现溢出。

您可以将指数与

double base = 99999;
double maxExp = Math.log(Long.MAX_VALUE)/Math.log(base);

如果功率高于maxExp,则会出现溢出。

您可以近似计算,但通常情况下,如果不做此问题,就无法知道答案。您可以尝试对数显示,我可以近似吗?您可以近似计算,但一般来说,不做题就无法知道答案。你可以试试对数,我可以近似吗?你可以近似,但一般来说,不做题就无法知道答案。你可以试试对数,我可以近似吗?你可以近似,但是一般来说,如果不做这个问题,就无法知道答案。你可以试试对数,我能近似吗?