Your understanding is incorrect.
You have specified a decimals value of 0 therefore the value supplied will be rounded to an integer value.
From MSDN "If the value of the first digit in d to the right of the decimal position represented by the decimals parameter is 5, the digit in the decimals position is rounded up if it is odd or left alone if it is even"
As the first value to the right of the decimal point is 4 and not five then the value returned is 1.
If the decimal value had been 1.55 then the answer would have been 2.
If the decimal value had been 2.55 then the answer would have been 2 as well!
As you are specifying the midpoint rounding behaviour then this will be altered, but you as you are asking the round to work with decimals=0 it will only check the first digit after the decimal point.
Infact if you specified decimals=1 as in
Math.Round(1.45,1)
Then your answer would be 1.4 as it checks the second digit after the decimal point for rounding of the first.