gpt4 book ai didi

c - 为什么 atan 没有产生正确的结果?

转载 作者:太空宇宙 更新时间:2023-11-04 02:41:46 24 4
gpt4 key购买 nike

我有以下小程序,它在我的大型项目中重现了一个触发错误:

#define _USE_MATH_DEFINES
#include <math.h>
#include <stdio.h>

#define R2D(trig_fn, val) trig_fn (val * (180.0 / M_PI))

int main()
{
printf("%f\n", R2D(atan, 2.5));
return 0;
}

atan(2.5) 从弧度转换为度数的预期结果是 68.1985...,但该程序输出 1.563815,这与正确答案相去甚远。

我将其预处理到一个文件中;问题不在宏中,这也是我的第一个猜测;宏正确展开 (atan (2.5 * (180.0/3.14159265358979323846)))。

最佳答案

double atan(double x);

Returns the principal value of the arc tangent of x, expressed in radians.

输出以弧度为单位,而不是度数。您需要将函数的结果转换为度数。输入仍然是一个简单的无单位数字。

#define R2D(trig_fn, val) (trig_fn(val) * (180.0 / M_PI))

关于c - 为什么 atan 没有产生正确的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31151339/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com