我发现tan(float)
库中的cmath
函数返回一个负值。
运行时,请执行以下代码:
#include <cmath>
....
// some calculation here gives me a value between 0.0 to 1.0.
float tempSpeed = 0.5;
float tanValue = tan(tempSpeed * 60);
__android_log_print(ANDROID_LOG_INFO, "Log Me", "speed: %f", tanValue);
在日志文件中给出此结果:
Log Me: speed `-6.4053311966`
据我所知
tan(0.5*60) = tan(30) = 1/squareroot(3);
有人能帮我解释一下为什么我会看到负面价值吗?是否与某些浮点大小错误有关?还是我在做什么蠢事?
最佳答案
在c中,tan
和其他三角函数期望弧度作为参数,而不是度数。可以将度转换为弧度:
tan( 30. * M_PI / 180. ) == 0.57735026918962576450914878050196
关于android - 在C中,tan(30)给出了负值!为什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11195039/