В C# округление чисел производится с помощью метода Math.Round(), который округляет число до ближайшего целого.
Что касается вашего вопроса о результате округления чисел 4.5 и 5.5, здесь следует учитывать следующее: в случае, если дробная часть числа равна 0.5, то число округляется к ближайшему четному числу. Это правило называется "банковское округление" и было установлено не произвольно, а имеет свои обоснования.
В случае с числами, оканчивающимися на 0.5, округление до ближайшего четного числа позволяет уменьшить среднюю ошибку при округлении серии чисел. Это обусловлено тем, что теоретически вероятность выбора четного числа равна вероятности выбора нечетного, а в случае с "банковским округлением" это правило можно использовать для уменьшения средней ошибки.
Таким образом, правило округления до ближайшего четного числа, если дробная часть равна 0.5, не было установлено произвольно, а имеет свои обоснования с точки зрения минимизации ошибок при округлении серии чисел.