@nurzhannogerbek

Как в GO сравнить два *float64 значения между собой?

Здравствуйте, товарищи! Помогите пожалуйста разобраться.

Есть две переменные. Назовем их GLOBAL_PERCENT и LOCAL_PERCENT. Значение в них динамические. Оба имеют тип данных *float64.

Задачи:
1) Если значение в переменной "LOCAL_PERCENT" меньше 5 по сравнению с значением в переменной GLOBAL_PERCENT, то вывести на консоль слово RED.
2) Если значение в переменной LOCAL_PERCENT меньше на 1-5 по сравнению с значением в переменной GLOBAL_PERCENT, то вывести на консоль слово YELLOW.
3) Если значение в переменной LOCAL_PERCENT больше 5 по сравнению с значением в переменной GLOBAL_PERCENT, то вывести на консоль слово GREEN.

Попытка использования нижестоящего кода вызвала ошибку. Ошибка: operator < not defined on *float64. Встает вопрос как корректно сравнить два *float64 значения между собой в языке программирования Golang?

if LOCAL_PERCENT < GLOBAL_PERCENT * 0.95 {
	println("RED")
} else if LOCAL_PERCENT > GLOBAL_PERCENT * 0.95 {
	println("GREEN")
} else {
	println("YELLOW")
}
  • Вопрос задан
  • 184 просмотра
Решения вопроса 1
*float64 это указатель на тип float64
Для получения указателя на которое ссылается указатель, необходимо произвести операцию разименовывания. Делается это через оператор *
if *LOCAL_PERCENT < *GLOBAL_PERCENT
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@GromderCom
По работе с числами в Golang есть несколько подробных статей: Float, Integer и большие числа. В первой статье есть подробное описание всех требуемых моментов.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Level Travel Москва
от 130 000 до 200 000 ₽
от 3 000 до 4 200 $
от 100 000 до 200 000 ₽
14 авг. 2020, в 02:27
1000 руб./за проект
14 авг. 2020, в 01:51
600 руб./за проект