如何提高指数的力量?

时间:2013-04-12 01:40:38

标签: javascript math

如何使用JavaScript计算 98提升到exp(13-5)的力量?

这是这样吗?

Math.pow(98,Math.exp(8))

1 个答案:

答案 0 :(得分:0)

当我需要处理会溢出标准浮点类型的大正数时,我会将数字存储为数字的对数。因此,我不计算98到exp(8)的幂,而是计算exp(8)* log(98)并使用它。我还没有(偶然)遇到这样一种情况,即使这种方法也不足以存储我需要的数字。但是,我遇到过几种情况,其中正确的答案涉及将非常大的数字乘以非常小的数字,并且在那种情况下使用我所描述的日志避免了溢出/下溢,这将导致错误的答案。

更新:我怀疑这是一个关于如何解决98 ^ exp(8)对于标准浮点类型来说太大的问题的某种功课问题。在这种情况下,我认为我使用日志的建议很方便。例如,要在C#中打印出数字,您可以执行以下操作:

double x = Math.Exp(13 - 5) * Math.Log(98);  // the number required is exp(x)
int exponent = (int)Math.Floor(x / Math.Log(10));
double absissae = Math.Exp(x - exponent * Math.Log(10));
System.Diagnostics.Trace.WriteLine(absissae.ToString() + " E " + exponent.ToString());

产生输出

5.77130918514205 E 5935