我想通過將它分成一個階梯函數,簡單的東西來計算一個簡單的近似積分。當我簡單地嘗試劃分時,問題就開始了。這裏是我的代碼:C - 簡單的除法(1/n)導致奇怪的答案
double integrand(int a, double div, int n) {
int i;
double sum, val;
val = 1.0/div;
for(i = 0; i < div; i++) {
sum = sum + (pow(i*val, n)/(i*val + a)) * val;
}
return sum;
}
這裏的div實際上是一個整數,我試圖把它納入積函數最初是作爲一個整數,它以類型轉換函數內使用雙,具有相同的結果。當我調試代碼時,div可以說是100,但val會返回一些荒謬的東西,比如-7.2008557565654656e + 304。據我所知,其餘的代碼是正確的,但我無法弄清楚,發生了什麼?!
可能的重複的[奇怪的C除法結果](http://stackoverflow.com/questions/985601/strange-result-of-division-in-c) –
我已經考慮過浮點的可能性不準確,但我沒有想到1/100的結果是任意的。 – user3014043
這個'val = 1.0/div;'給'val'帶來類似'-7.2008557565654656e + 304'的東西嗎? – alk