我在TMS320F2800157芯片上,调用sinf/cosf函数,
1、计算的结果有些正确,有些不正确
请问是什么原因?
#define CONST_PI_32 3.14159265358979323846f
float32_t tmp;
tmp = (float32_t)sinf(CONST_PI_32/4); // 0.707106769,正确
tmp = (float32_t)sinf(CONST_PI_32/4 + CONST_PI_32/5); // 0.987298429
tmp = (float32_t)sinf(CONST_PI_32/4 + CONST_PI_32/4); // 1.0, 正确
tmp = (float32_t)sinf(CONST_PI_32/4 + CONST_PI_32/3); // 0.0,错误
tmp = (float32_t)cosf(CONST_PI_32/4); // 0.0, 错误
tmp = (float32_t)cosf(CONST_PI_32/4 + CONST_PI_32/5); // -0.00242325524,是否正确
tmp = (float32_t)cosf(CONST_PI_32/4 + CONST_PI_32/4); // 0.0,正确
tmp = (float32_t)cosf(CONST_PI_32/4 + CONST_PI_32/3); // 0.0,错误
2、sinf/cosf函数,输出参数的取值范围只能是 (-Pi) ~ (Pi) 之间吗? 超出这个范围,好像计算的结果会很离谱