Many years passed, I am (hopefully) wiser now and can give some advice on how to deal with the problem described above.
First of all, 'removing last significant digit' is not going to help at all. It makes problem worse. Say, you got want to round to remove last three digits. If your start with numbers a=1.499 and b=1.501 you end up with a'=1 and b'=2. So, although such rounding can 'smooth out' small discrepancies it will also significantly increase some of them.
The approach, which seems to work instead, is using algorithms, like Kahan summation to reduce numerical error. It works particularly well, if you want to find a sum of elements in, say vector. Straightforward summation will give you a result, which depends on order of elements in the vector. Using Kahan summation will almost always give you the same answer.