This is not strictly round:
> printf '%.0f\n' 2.5
2
> printf '%.0f\n' 3.5
4
This is a rounding form used to combat bias if you round a large number of values; approximately half of them will be rounded, the other half rounded. The rule is rounded if the integer part is even, up if the integer part is odd.
This, however, is only an explanation of the specific rounding scheme, which is not guaranteed for all implementations printf.