0

我有以下代码:

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

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

根据调试器,结果值为e2,但它应该是 2.8284271。我究竟做错了什么?

4

2 回答 2

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

也许你有错误的公式?

希望这可以帮助!

于 2013-06-19T19:10:12.723 回答
1

示例代码:

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

评估将是 2 * (2 - 1) => 2 CORRECT(实际结果为 2);

不会是 1 * (2 - 1) => 1 WRONG(您对 2.8284271 的期望);

这就是你的困惑,我猜。

于 2013-06-20T00:53:10.990 回答