你如何在C#中编写exp(a / b)?

时间:2010-08-11 16:28:43

标签: c# math

我正在计算公式,并想知道如何在C#中编写exp(a/b)。 我听说过math.exp,但它只需要一个参数。

2 个答案:

答案 0 :(得分:8)

正如在Math.Exp的文档中所述,

  

使用Pow方法计算功率   其他基地。

http://msdn.microsoft.com/en-us/library/system.math.pow.aspx

如果你传递的是a / b的结果(也就是除以b),那么该结果就是一个值,可以传递给Math.Exp。

答案 1 :(得分:7)

丹尼尔在答案中已经提到过,使用Math.Exp

在我的回答中,我想指出一些你可以避免的陷阱。

如果您打算像问题中提到的那样致电Math.Exp,例如Math.Exp(a/b),其中ab是两个整数,而不是变量,请不要不要忘记把分子强加到double

Math.Exp((double)1/2);

如果你不这样做,那么将使用两个int进行除法,导致精度下降(参见代码中的注释):

Math.Exp(1/2); //results in 1, since 1/2 = 0 and e^0 = 1
Math.Exp((double)1/2); //results in 1.64872127070013, since (double)1/2 = 0.5

正如Daniel在对此答案的评论中正确提到的那样,将doublea定义为b后,可以省略对double的强制转换,并使用这两个变量对于Math.Exp中的分工:

double a = 1;
double b = 2;
Math.Exp(a/b);