如何使用JavaScript计算提高到exp(13-5)幂的98?
是这条路吗?
Math.pow(98,Math.exp(8))发布于 2013-04-12 13:41:50
当我需要处理会溢出标准浮点类型的大正数时,我会将数字存储为数字的日志。所以,我不计算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 5935https://stackoverflow.com/questions/15961731
复制相似问题