В Go есть возможность выполнить округление вещественного числа до целочисленного значения или до указанной точности округления. Частой ошибкой является конвертирование вещественного типа float64 в целочисленный тип Integer.

К примеру, при конвертировании float-числа 3.9999 в тип integer его значение не округлится до 4. В результате получится 3. В версии Go (1.9.2) нет функции Round. Однако, начиная с версии 1.10 функция Round была добавлена в пакет math.

Форум Гоферов

Мы работаем над форумом для программистов на Golang. Очень нужны модераторы которые хотят помочь с ответами для новичков и помочь в развитии Go-сообщества.

Go на Форум

Уроки, статьи и Видео

Мы публикуем в паблике ВК и Telegram качественные обучающие материалы для быстрого изучения Go. Подпишитесь на нас в ВК и в Telegram. Поддержите сообщество Go программистов.

Go в ВК Go в Telegram

Как округлить число float в Go?

1. Создайте файл round.go со следующим содержимым:

2. Запустите код в терминале через go run round.go;
3. Посмотрите на вывод:

На деле в результате конвертирования типа float в integer дробная часть просто обрезается. Предположим, значение 2 представлено как 1.999999. Таким образом, выводом станет 1, чего нам не нужно.

Правильным способом округления вещественного числа будет использование функции, что также учитывает десятичную часть. Популярным методом округления является округление к ближайшему целому числу, также известное как коммерческое округление. Если десятичная часть числа равна или превышает 0.5, тогда число округляется вверх. В противном случае округление производится вниз.

В версии Go 1.10 используется более быстрая версия функции, что упоминалась в нашем примере. В версии 1.10 для получения округленного числа можно вызвать функцию math.Round.

Понравилась статья?

Поддержи наш проект, чтобы мы могли создать больше хорошего контента!