Ваше понимание неверно.
Вы указали десятичное значение 0, поэтому предоставленное значение будет округлено до целого числа.
Из MSDN "Если значение первой цифры в d справа от десятичной позиции, представленной параметром десятичных дробей, равно 5, цифра в десятичной позиции округляется в большую сторону, если она нечетная, или влево, если она четная «
Поскольку первое значение справа от десятичной точки равно 4, а не пяти, возвращаемое значение равно 1.
Если бы десятичное значение было 1.55, то ответ был бы 2.
Если бы десятичное значение было 2,55, то ответом было бы и 2!
Поскольку вы задаете поведение округления средней точки, это будет изменено, но вы, когда вы просите, чтобы раунд работал с десятичными числами = 0, он будет проверять только первую цифру после десятичной запятой.
Фактически, если вы указали десятичные дроби = 1, как в
Math.Round(1.45,1)
Тогда ваш ответ будет 1.4, поскольку он проверяет вторую цифру после десятичной точки для округления первой.