2012-03-16 97 views
1

我正在爲需要用C#編寫的excel計算而苦苦掙扎。C#中的Excel計算#

Excel中的計算是這樣的:

=(-0,7333 * (1)^2 + 3,3167 * 1 + 1,625) * 1.821 * 16/1000 * 1,125 

在C#中我有這樣的:

Math.Pow(-0.7333 * (1.0), 2) + 3.3167 * 1.0 + 1.625) * 1821.3125 * 16.0/1000 * 1.125 

對Excel計算給我的138

結果C#的計算給我179.63554194392623

當然,C#計算應該與Excel計算的結果相匹配,雖然在數學方面我當然不是很好,但是我沒有發現這個計算的差異: -/

任何人都可以指出這一點數學 - 盲目地朝正確的方向發展? :-)

任何幫助/輸入非常感謝!

在此先感謝。

一切順利,

編輯: 感謝您的答案! :-)我剛剛在那裏學到了一些新東西。

回答

6

更改EXcel中單元格的格式,它會顯示exact結果。

另外-0,7333 * (1)^2在Excel中是-0.7333 * Math.Pow((1.0), 2)而不是你寫的。

1

你的錯誤是,Excel將做電源muliplication前:

double q = (-0.7333 * Math.Pow((1.0), 2) + 3.3167 * 1.0 + 1.625) * 1821.3125 * 16.0/1000 * 1.125; 
0

有一個在Excel中表達缺少括號:

=((-0,7333 * 1)^2 + 3,3167 * 1 + 1,625) * 1.821 * 16/1000 * 1,125 

返回:

179.60472015642 

否則,電源將僅適用於「1」。 此外,在excel公式中,術語1821缺少十進制數字。所以:

=((-0,7333 * (1))^ 2 + 3,3167 * 1 + 1,625) * 1821,3125 * 16/1000 * 1,125 

返回:

179,635541943926 

好多了!