我在Excel中計算需要用C#編寫時遇到了一些麻煩。C#中的Excel公式計算#
在Excel中計算是這樣的:
=(26/1000*1,500+(0,0000039096*(26*26)+0,000082819*26+0,005066))*149468556,2
*(1+0,10%)
這給出的結果:7310663,398
在C#我具有完全相同的計算(除了在14949 ..數更小數:
(26.0/1000.0 * 1.500 + (0.0000039096 * (26.0 * 26.0) + 0.000082819 * 26.0 + 0.005066)) * 149468556.2 * (1 + 0.1);
其中給出這樣的結果:7632589.7787303319
由於公式中的最後一個數字是百分之我也試過這樣:
(26.0/1000.0 * 1.500 + (0.0000039096 * (26.0 * 26.0) + 0.000082819 * 26.0 + 0.005066)) * 149468556.2 * (1 + (0.1/100));
哪個給出了這樣的結果:6945656.6986446008
當然,我需要匹配的Excel結果在C#中,但我米總是堅持如何實現這一目標。猜猜我應該在數學課中仔細聆聽;-)
任何幫助/輸入對此非常感謝!
在此先感謝。
一切順利,
博
爲什麼不打破的公式更簡單的東西,並縮小問題的範圍?就精度而言,Excel的數字與C#的行爲不同。可能你是這個的受害者。 – tenfour 2012-03-19 10:18:54
嘗試更改'26/1000'到'26.0/1000.0'來執行雙倍分割而不是整數。 – Henrik 2012-03-19 10:21:51
tenfour:我已經嘗試過了,但是我不得不承認,在數學方面我完全愚蠢:(根本無法得到正確的結果.. – bomortensen 2012-03-19 10:24:16