При подсчёте формулы есть некие условия, неисполнение которых переменная result типа double должна преобразоваться в строковую и выводить вместо результата ошибку - Calculation error. Выводится -nan(ind), в чем проблема?
double calculateExpression(double x) {
double result = 0;
if (x != 95 && cos(x - 95) != 0 && 95 / cos(x - 95) != 0) {
result = log(abs(95 / 10) + 4 * (1 - 95 / cos(x - 95))*(sin(x)/95));
}
else {
std::string str = std::to_string(result);
std::cout << "Calculation error" << result << std::endl;
}
return result;
}
Немного исправил, но ошибка осталась та же
double calculateExpression(double x) {
double result = 0;
result = log(abs(95 / 10) + 4 * (1 - 95 / cos(x - 95)) * (sin(x) / 95));
if (((sin(x) / 95) == 0 && (1 - 95 / cos(x - 95)) == 0 && cos(x - 95)) && log(abs(95 / 10) + 4 * (1 - 95 / cos(x - 95)) * (sin(x) / 95)) < 0 && result == 0) {
std::string str = std::to_string(result);
std::cout << "Calculation error" << result << std::endl;
return result;
}
return result;
}