There are a few things we do when dealing with floating point, especially during reporting.
For instance, you have a report that sums up a lot of floating point values all coming out of a data base. What I do is make sure that I round all data going into the database to x decimals. Consider this your tolerance. If it is money in US dollars that is being reported to 2 decimal places then I store to 3. Every time I perform a math operation on the data - I round it. This ensures that if you add up items individually in the report that they sum up properly.
Essentially this is the same thing. SU must store the data after internally rounding it in 3D space.
I've also worked with a lot of raw GPS device. We needed to apply logic to reduce wander while vehicles are stopped. Otherwise the vehicles would accumulate small amounts of movement over time. Sitting in traffic in urban canyons ( tall buildings ) has its own challenges.
I digress. In this case I push Point3D values into an array - or collection. Essentially perform rounding by testing for equivalency. I also needed to work with Point3D values so that intersect_line_line etc. work properly.