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

sun*_*nny 0 c# math

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

Dan*_*ker 8

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

使用Pow方法计算其他碱基的功效.

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

如果您传递a/b的结果(即除以b),则该结果是单个值,可以传递给Math.Exp.


Giu*_*uto 7

像丹尼尔在他的答案已经提到的,使用Math.Exp.

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

如果你打算Math.Exp像你在问题中提到的那样打电话,即Math.Exp(a/b),在哪里ab是两个整数,而不是变量,不要忘记将分子强制转换为double:

Math.Exp((double)1/2);
Run Code Online (Sandbox Code Playgroud)

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

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
Run Code Online (Sandbox Code Playgroud)

正如丹尼尔在对这个答案的评论中正确提到的那样,double一旦你定义abas double,并且使用两个变量进行划分,可以省略强制转换Math.Exp:

double a = 1;
double b = 2;
Math.Exp(a/b);
Run Code Online (Sandbox Code Playgroud)