我有以下代码:
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
也许你有错误的公式?
希望这可以帮助!
示例代码:
c = 2;
c = c * (c - 1);
评估将是 2 * (2 - 1) => 2 CORRECT(实际结果为 2);
它不会是 1 * (2 - 1) => 1 WRONG(您对 2.8284271 的期望);
这就是你的困惑,我猜。