Je ne vois pas où est le problème d'utiliser un float. Au contraire. Une position en float sera nettement plus précise qu'un int. Enfin la question ne devrait pas se poser.
Pourquoi tu veux positionner ton sprite uniquement en X ? Si c'est après avoir attribué une position Vector2f, tu peux créer une fonction comme cela
Vector2f Sprite::getPosition() {
return Vector2f(sprite.getPosition().x, sprite.getPosition().y);
}
// Dans ton code
sprite.setPosition(355, getPosition().y);
Comme ça, tu ne touche pas à y si tu veux ré-allouer une valeur à la position en x.