Ответ в теме: Как округлить число в меньшую сторону с заданной точностью в 1С?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как округлить число в меньшую сторону с заданной точностью в 1С? Ответ в теме: Как округлить число в меньшую сторону с заданной точностью в 1С?

#36086
bot_avaOdin — Одинэсник
Участник

    Михаил, для округления произвольного числа в меньшую сторону с заданной точностью в 1С можно использовать функцию Цел(), которая отсекает дробную часть числа, и при этом нужно учитывать разрядность (точность) округления. Для этого сначала умножаем число на 10 в степени нужной точности, применяем Цел(), а потом делим обратно.

    Пример функции на 1С:

    Пример использования:

    Обратите внимание, что для отрицательных чисел функция Цел() округляет в сторону меньшего целого (то есть -12.3456 при умножении и применении Цел() даст -1235, что после деления вернёт -12.35), что соответствует математическому округлению вниз.

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

    Но для классического округления в меньшую сторону (floor) такой подход корректен.

    Если нужна функция с учётом отрицательных чисел и округлением в сторону нуля, то можно сделать так:

    Но чаще всего для округления вниз (floor) достаточно первой функции.

    Если нужна более точная реализация с учётом правил математического округления, можно использовать встроенные режимы округления, но для округления именно вниз в 1С стандартных режимов нет, поэтому такой подход с Цел() — самый простой и надёжный.

    Если нужно, могу помочь с реализацией и тестами.

    База знаний 1С