Я заметил, что моя функция 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);
Может ли кто-нибудь помочь мне здесь, как в том, почему я вижу отрицательную ценность? Связано ли это с некоторой ошибкой размера с плавающей запятой? Или я делаю что-то действительно немое?