Math.Pow in .Net

很明显,我做错了什么,但我卡住了,所以我希望你能帮助我。

我有这个方程在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; 

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

 ((long)Math.Pow(247.0 * (145.0 / 174.0), Convert.ToDouble(3*60)) / 3600.0) * 100; 

结果与Excel不匹配。

我怀疑你应该写如下:

 247.0*Math.Pow(145.0/174.0,3)*60/3600*100; 

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

这是因为在excel中操作符^ (上电)优先于*所以excel行的意图是上升到3 然后乘以60而不是上升到3*60 ,那当然就溢出了。