2

我有这个方程,它使用 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);
}

这背后有什么原因吗?是因为辐射还是度数?

我还没有真正使用过 C 的 sin 或任何数学函数,所以我并没有真正理解这里有什么问题。谷歌给了我 0.84 作为 aswer 但我的 calc 给了我 .017 这真的很令人困惑,因为我需要用我的 calc 获得相同的输出。

谢谢你们 :)

4

2 回答 2

4

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

double sin_degrees(double degrees) {
    return sin(degrees * (M_PI/180.0);
}
于 2013-01-29T12:52:10.110 回答
3

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

rad_angle = deg_angle * (PI / 180.0);

PI知道的好老常数在哪里。

于 2013-01-29T12:52:17.717 回答