Разница между функциями round() и ceil() при работе с отрицательными числами заключается в том, что они выполняют разные математические операции: stackoverflow.com
- round() округляет значение с плавающей точкой до ближайшего целого числа. stackoverflow.com Если любое из двух целых чисел с обеих сторон находится на равном расстоянии друг от друга, выбирается чётное число. stackoverflow.com
- ceil() возвращает наименьшее целое число, большее или равное значению с плавающей точкой. stackoverflow.com Алгоритм определяет большую границу интервала с учётом знака. pythonchik.ru
Таким образом, round() округляет в сторону ближайшего целого числа, а ceil() — в большую сторону, независимо от того, является ли число отрицательным или нет. habr.com doka-guide.vercel.app