当y&时,atan2(y,x) x非常小

时间:2013-09-04 17:29:53

标签: c atan2

我在C中尝试atan2,参数大约为10 -14 。 它给出了一个错误的答案:大约90而不是零,例如:

void main()
{
    double a =3.4e-14;
    double b=9e-10;
    atan2(3.4e14,9.0e-9); // returns ~90 instead of zero or Not a number
}

2 个答案:

答案 0 :(得分:1)

您已在代码中定义了两个变量ab, 但是你使用常量作为atan2的参数。

ab的值只会被忽略。

atan2(a, b); 
正如您所料,

将返回接近零的值。

atan2(3.4e-14,9.0e-9)相同(注意e-14,而不是e14)。

答案 1 :(得分:0)

看起来你在3.4 * 10 ^ 14而不是3.14 * 10 ^( - 14)上调用atan2?