Math.Pow in .Net

时间:2014-04-28 07:45:57

标签: c# .net excel math

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

我在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不匹配。

1 个答案:

答案 0 :(得分:10)

我怀疑你应该写如下:

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

请参阅此处的小提琴:http://dotnetfiddle.net/B32N3B

这是因为在Excel中,运算符^(上升到幂)优先于* 所以excel系列的意图是3 然后乘以60升至3*60,当然是溢出来的。