我有以下代码:
double e = 36858.767828375385;
double c = 2;
double d = 67.877433500000009;
e = sqrt(e / (c * (c - 1))) / d;
根据调试器,e
的结果值为2,但应为2.8284271。我做错了什么?
答案 0 :(得分: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
也许你的公式错了?
希望这有帮助!
答案 1 :(得分:1)
示例代码:
c = 2;
c = c * (c - 1);
评估将是2 *(2 - 1)=> 2正确(2的实际结果);
不是1 *(2 - 1)=> 1错(你的期望为2.8284271);
这就是你的困惑,我想。