我有以下函数用于将弧度转换为角度:
float DegreesToRadians(float degrees) {
return degrees * (PI / 180);
}
当我现在执行以下操作:
sinf(DegreesToRadians(90));
这里预期返回1。但是当我执行以下代码时:
sinf(DegreesToRadians(180));
返回值为-8.74228e-08。有没有人知道为什么会这样?(cosf也会出现类似的情况,但是顺序相反:180 -> -1;90 -> -8.74228e-08)
PI / 180
的正确值。 - Andy Turnerfloat
的精度有限。尝试使用double
,您将获得约为 e-16 的结果。 - Bob__M_PI
。 - enhzflep