@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")
}
  • Вопрос задан
  • 899 просмотров
Решения вопроса 1
*float64 это указатель на тип float64
Для получения указателя на которое ссылается указатель, необходимо произвести операцию разименовывания. Делается это через оператор *
if *LOCAL_PERCENT < *GLOBAL_PERCENT
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@GromderCom
По работе с числами в Golang есть несколько подробных статей: Float, Integer и большие числа. В первой статье есть подробное описание всех требуемых моментов.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы