Попробуйте:
double latitude =
Math.Acos(latRadius * 1d / maxRadius) * (180.0/Math.PI);
label3.Text = latitude.ToString("0.00");
EDITED , чтобы ответить на комментарий пользователя:
Ваша проблема в том, что вы используете целые числа как для latRadius
, так и maxRadius
(я думаю);поэтому, когда ваше приложение оценивает (latRadius / maxRadius)
, оно использует целочисленное деление, и поскольку значение latRadius меньше, чем maxRadius, оно всегда равно нулю!
По этой причине вы не видели никакого обновления.
Теперь, используя (latRadius * 1d / maxRadius)
вынудить компилятор использовать реальное деление (*1d
означает умножение на двойное число 1), и работа выполнена.
БОЛЬШЕ :
Не используйте Math.Round
на широте, если вы собираетесь использовать его в других формулах.
Покажите его, используя два десятичных знака с latitude.ToString("0.00")
.