As specified in MokoshaMokosha's answer, this is most likely due to floating point error, and it is usually unavoidable. There are however a couple of things you can do:
The first, and most obvious, is to use double instead of float (if you aren't already). But even this will only slightly improve the situation, and over a long enough period of time, inaccuracies may still occur.
The second and more robust way is to "reset" your values in some way at specific times. For example, when your objects are at their closest positions together (just before or after they both reach the center) simply take the distance of one object from the center and set the second object to the same distance on the opposite side of the center - so if one is at 240.5 set the other to 239.5 (just as an example). If you have a small enough delta time, this will usually be imperceptible to the user. Alternately you can calculate the distance between the objects and offset each by half that value from the center - so if one is at 240.5 and the other is at 239.4 the distance between them is 1.1, half of that is 0.55, so you would set the values to 240 + 0.55 = 240.55 and 240 - 0.55 = 239.45 respectively. This should further decrease the player's perception to the "correction".
You can do this "reset" at some defined interval, or each time they reach their target location. Either way it should fix your problem ;)