Math.Pow in .Net

Dev*_*Joe 0 .net c# math excel

很明显我做错了但是我被困了所以我希望你能够帮助我.

我在Excel中有这个等式:=((247*(145/174)^3*60)/3600)*100
结果= 238.233

我在.Net中试过这个:

(Math.Pow(247.0 * (145.0 / 174.0), Convert.ToDouble(3*60)) / 3600.0) * 100; 
Run Code Online (Sandbox Code Playgroud)

问题是C#返回INF而不是结果,如果我尝试这样做:

((long)Math.Pow(247.0 * (145.0 / 174.0), Convert.ToDouble(3*60)) / 3600.0) * 100;
Run Code Online (Sandbox Code Playgroud)

结果与Excel不匹配.

Fel*_*ano 10

我怀疑你应该写如下:

247.0*Math.Pow(145.0/174.0,3)*60/3600*100;
Run Code Online (Sandbox Code Playgroud)

请看这里的小提琴:http://dotnetfiddle.net/B32N3B

这是因为在excel运算符^(上升到幂)中具有优先权,* 因此excel线的意图是上升3 然后乘以60,而不是上升到3*60当然是溢出的那个.

  • 是的,这肯定是答案.OP中的C#代码将数字提升到180的功率,这显然会溢出. (2认同)