Я пишу класс, который должен вычислять углы (в градусах), после долгих попыток я не получаю его.
Когда r = 45 & h = 0, сумма должна бытьоколо 77,14 °
но возвращается NaN - почему?Я знаю, что это должно быть что-то с методом Math.Atan и недопустимым значением.
Мой код:
private int r = 0, h = 0;
public Schutzwinkelberechnung(int r, int h)
{
this.r = r;
this.h = h;
}
public double getSchutzwinkel()
{
double sum = 0;
sum = 180 / Math.PI * Math.Atan((Math.Sqrt(2 * h * r - (h * h)) - r * Math.Sin(Math.Asin((Math.Sqrt(2 * h * r)) / (2 * r)))) / (h - r + r * (Math.Cos(Math.Asin(Math.Sqrt(2 * h * r) / (2 * r))))));
return sum;
}
Кто-то видит мою ошибку?Я получил формулу из таблицы Excel.
РЕДАКТИРОВАТЬ: Хорошо, моя проблема заключалась в том, что у меня была ошибка синтаксического анализа при создании объекта или получении пользовательского ввода, очевидно, решил ее случайно.Ofc Я должен добавить простое исключение, как сказал Ник Dechiara.Большое спасибо за быстрый ответ, я ценю это.
EDIT2: Исключением в моем листе Excel является:
if(h < 2) {h = 2}
, так что это все объясняет, и я не обращал на это вниманиявсе.Еще раз спасибо за все ответы.
int r = 45, h = 2;
sum = 77.14°