Strange round() results?

what’s “hard to understand” is:

if round() is rounding-down (floor), 1.5 should get 1, and 2.5 should get 2
otherwise, if it’s rounding-up (ceiling), 1.5 should get 2, and 2.5 should get 3

on the other hand, the “common sense” rounding is: 0 <= x < 0.5 → 0, 0.5 <= x <= 1.0 → 1

now, 1.5 gets 2, and 2.5 gets 2 also

it’s counter-intuitive