Python Question #3 - round() function

Greetings:

If I were to write the following:
<<x = 2.5
print(round(x))>>,

2 will be displayed in the terminal window instead of 3.

Is 2 displayed in the terminal window because one of the limitations in converting decimal fractions to its binary floating-point representation is that those conversions could sometimes result in a binary approximation, whose value is slightly less than the number that will be rounded in the round() function and because of the round half-to-even method, right? Or is it because of something else?

Stole this answer from stack overflow.

It is actually currently considered proper to not blindly round *.5 up. Rather, it is proper to round *.5 to the nearest even number. Python 3 implements this “proper” form of “banker rounding”, but a lot of other languages don’t (yet). Blindly rounding *.5 up produces a slight bias, but “banker rounding” helps to balance it it out.