When using the /tp command with integer values, the entity being teleported will be centred to y+=0.5 in addition to being centred on the x and z axes.
- Create a new world
- Go into spectator mode
- Run /tp @s 0 0 0
If you look at the block coordinates, you will end up at x=0.5 and z=0.5, as expected. But you will also end up at y=0.5.