sin函数没有按预期工作

时间:2013-01-29 12:49:03

标签: c

我有这个等式,它的输出使用sci calc是:0.017 ...但是当我在c中运行它的输出是:0.84 ..

输入为1

等式是:sin(x) - x ^ 4 + 1

float sinp(float p1)
{
    float fop;
    float ppowers;
    printf("%f",p1);
    ppowers = pow(p1,4);
    fop = sin(p1)-ppowers+1;
    return (fop);
}

这背后的原因是因为它是因为rad还是度数?

我还没有真正使用C的罪或任何数学函数,所以我真的不知道这里有什么问题。谷歌给了我.84作为一个下水道,但我的计算结果给了我.017这真的令人困惑,因为我需要用我的计算得到相同的输出。

谢谢大家:)

2 个答案:

答案 0 :(得分:4)

在数学和所有计算机语言中,三角函数以弧度为单位。如果你想以度数工作,你应该进行转换(或定义你自己的sin_degrees函数),如:

double sin_degrees(double degrees) {
    return sin(degrees * (M_PI/180.0);
}

答案 1 :(得分:3)

我猜谷歌使用度数作为罪的角度测量,而c ++使用弧度,这就是差异的原因。要将以度为单位的角度转换为以弧度表示的相同值,请执行以下操作:

rad_angle = deg_angle * (PI / 180.0);

PI凡你知道的好老常数。