我有以下代碼:這個C表達式爲什麼會產生錯誤的答案?
double e = 36858.767828375385;
double c = 2;
double d = 67.877433500000009;
e = sqrt(e/(c * (c - 1)))/d;
所得的e
值是2,根據調試器,但它應該是2.8284271。我究竟做錯了什麼?
我有以下代碼:這個C表達式爲什麼會產生錯誤的答案?
double e = 36858.767828375385;
double c = 2;
double d = 67.877433500000009;
e = sqrt(e/(c * (c - 1)))/d;
所得的e
值是2,根據調試器,但它應該是2.8284271。我究竟做錯了什麼?
原因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
也許你有錯誤的公式?
希望這會有所幫助!
哦,是的,我認爲這是公式中的錯誤。傻我。 – Atirag
樣品的編號:
c = 2;
c = c * (c - 1);
評價將是2 *(2 - 1)=> 2 CORRECT(實際的2結果);
它會不是是1 *(2 - 1)=> 1錯誤(您期望2.8284271);
這是你的困惑,我猜。
這是什麼公式? – templatetypedef
我不確定這個公式的用法!我只是對原文發表解釋。 – CancerSoftware
'some_value'的實際值是多少? – AJMansfield
在Eclipse上,printf結果是e = 2.000000 – Atirag
您需要向我們展示一個[SSCCE](http://sscce.org/)。我們現在看不到問題。 – Mysticial