krembrule2016
@krembrule2016

Почему я получаю Nan в результате работы функции?

Добрый день!
Всех с прошедшими праздниками!

Пишу такой возврат в функции
return x = (double)Gdx.graphics.getWidth()/2+Math.sqrt((85*85)-(y+(double)Gdx.graphics.getHeight()/2)*(y+(double)Gdx.graphics.getHeight()/2));

В ответ получаю Nan
Прошу прощения за глупый вопрос, просто обычно долго туплю с подобного рода ошибками.
Чяднт?
  • Вопрос задан
  • 143 просмотра
Решения вопроса 1
zagayevskiy
@zagayevskiy Куратор тега Java
Android developer at Yandex
Я думаю, потому что (85*85) < (y+(double)Gdx.graphics.getHeight()/2)*(y+(double)Gdx.graphics.getHeight()/2
Что, в общем-то, логично, если это высота экрана. Таким образом, корень из отрицательного числа - число комплексное, и Math.sqrt легитимно возвращает NaN. Все дальнейшие вычисления с NaN дают снова NaN.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы