Ответ этой функции возвращается в основную функцию программы, и это работает нормально. Проблема в том, что любое значение, где косинус должен быть 0, оказывается, дает странное иррациональное число (что-то вроде 1.30431912 * 10^-13). Итак, 90, 450 и т. Д., Все получается иррациональными ответами. Что случилось?Ответ от функции неверен
float cosineDegrees() {
string i;
double iDouble;
cout << "Give me a number to find the value of degrees in. ";
getline(cin, i);
iDouble = stod(i);
double PI = 3.14159265359;
float answer = cos((PI/180)*iDouble);
return answer;
}
pi не совсем 3.14159265359, не так ли? – stijn
1.30431912 * 10^-13 не является иррациональным. Это совершенно рационально, но очень близко к нулю. Это как можно ближе к нулю, как вы, вероятно, получите. См. Также [Является ли математика с плавающей запятой?] (Http://stackoverflow.com/questions/588004/is-floating-point-math-broken). – molbdnilo