我有这个等式,它的输出使用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这真的令人困惑,因为我需要用我的计算得到相同的输出。
谢谢大家:)
答案 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
凡你知道的好老常数。