Округляет число всеми основными способами сразу — видно, чем отличается математическое округление от банковского и почему в бухгалтерии и в программировании результаты иногда не совпадают.
При обычном округлении все «половинки» уходят вверх, и на большом массиве данных сумма систематически завышается. Округление к чётному распределяет ошибку симметрично, поэтому его используют в финансовой отчётности и заложили в стандарт IEEE 754 — по нему работают числа с плавающей точкой в процессорах.
Здесь чаще всего и возникает путаница. Для −2.5: математическое округление даёт −3, floor тоже −3, а trunc — только −2. В программировании функция округления вниз и функция отбрасывания дробной части — разные вещи, и для отрицательных значений расхождение составляет единицу.
Двоичное представление не может точно записать десятичные дроби вроде 0.1, поэтому появляется погрешность в 17-м знаке. Для денежных расчётов эту проблему обходят, храня суммы в копейках как целые числа.
До копеек по математическому правилу, а итог по НДС в отчётности — до целых рублей. Из-за этого сумма строк иногда отличается от итога на рубль: это нормальное следствие округления, а не ошибка.