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
,那当然就溢出了。