Округление

Округление в C++ довольно часто требуется для выполнения различных задач. Существует большое количество вариантов округления, в зависимости от необходимого значения. Как и большинство мат. операций, они находятся в библиотеке <cmath>, а также более старой библиотеке <math.h>.

Самые распространенные – это функции round(), ceil(), floor() и trunc(). Если первая выполняет математически правильное округление, то есть к ближайшему целому, а 0,5 к более дальнему от 0, то ceil() округляет в сторону большего, а floor() - в сторону меньшего. Последняя функция trunc() скорее не округление, а простое отбрасывание дробной части. Продемонстрируем на примере:

Программа выведет значения 2, 3, 3 и 2.

Для случая, когда надо округлить число до определенного знака, в библиотеке <math.h> отдельной функции нет, потому обычно используют умножение числа и последующее после округления деление, то есть, например, для округления до сотых:

Получим значение 2.46.

Стоит отметить также, что в старых компиляторах C++ функция round не доступна и её приходится писать самостоятельно:

Опубликовано

Округление: 5 комментариев

  1. Есть ли какая-то функция округления, работающая почти, как round(), но 0.5 округляет к меньшему?

    1. Слишком неопределённая хотелка. Ответ - есть. В крайнем случае можете написать свою.

Добавить комментарий для proginfo Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Капча загружается...