2013-06-19 39 views
0

我有以下代碼:這個C表達式爲什麼會產生錯誤的答案?

double e = 36858.767828375385; 
double c = 2; 
double d = 67.877433500000009; 

e = sqrt(e/(c * (c - 1)))/d; 

所得的e值是2,根據調試器,但它應該是2.8284271。我究竟做錯了什麼?

+2

'some_value'的實際值是多少? – AJMansfield

+0

在Eclipse上,printf結果是e = 2.000000 – Atirag

+1

您需要向我們展示一個[SSCCE](http://sscce.org/)。我們現在看不到問題。 – Mysticial

回答

6

原因e取值2是因爲這是實際的答案:

SQRT(E /(C *(C-1)))/ d;

= SQRT(E /(2 *(2 - 1)))/ d

= SQRT(E/2)/ d

= SQRT(36858.767828375385/2)/ d

= SQRT(18429.383914188)/ d

= 135.754867/d

= 135.754867/67.877433500000009

= 2

也許你有錯誤的公式?

希望這會有所幫助!

+0

哦,是的,我認爲這是公式中的錯誤。傻我。 – Atirag

1

樣品的編號:

c = 2; 
c = c * (c - 1); 

評價將是2 *(2 - 1)=> 2 CORRECT(實際的2結果);

它會不是是1 *(2 - 1)=> 1錯誤(您期望2.8284271);

這是你的困惑,我猜。

+0

這是什麼公式? – templatetypedef

+0

我不確定這個公式的用法!我只是對原文發表解釋。 – CancerSoftware

相關問題