Integers are used for initializing the screen because that's how the hardware (screen) treats them. Even if you're doing something like subpixel rendering, fundamentally either you have a pixel or you don't.
World space positioning models real life positioning. Things can exist at non integer locations. Floating point numbers aren't a perfect representation, (because they are an approximation of real numbers), but they work reasonably well for this.
Eventually things in world space get rendered & rasterized to screen space:
But prematurely casting your coordinates to integers would result in a loss of precision & introduce rendering errors. And again, the high level API (you your case SFML) is using what the lower level API (OpenGL) and hardware (video card) supports - floating point.
You can treat world space & screen space as the same. Some 2D games do that in part because it simplifies some of the math & reduces what you have to keep track of. But that simplification isn't necessarily true in general for all games or how things are modelled in general.
The SFML tutorial on Using sf::View touches on the differences between using two different coordinate systems & how to use mapPixelToCoords(…) and mapCoordsToPixel(…) to convert between them.
